Code Duplication    Length = 27-28 lines in 2 locations

tests/SearchableFieldTest.php 2 locations

@@ 29-56 (lines=28) @@
26
27
28
	/* Zero weight is pointless as it means not part of the search */
29
	public function testZeroWeight() {
30
		$searchPage = $this->objFromFixture('ElasticSearchPage', 'search');
31
		$lastEdited = $searchPage->LastEdited;
32
33
		$extraFields = array('Searchable' => 1, 'SimilarSearchable' => 1, 'Active' => 1,
34
			'Weight' => 0);
35
		$esfs = $searchPage->ElasticaSearchableFields();
36
		foreach ($esfs as $sf) {
37
			if ($sf->Name == 'Title' || $sf->Name == 'Description') {
38
				$esfs->remove($sf);
39
				$esfs->add($sf, $extraFields);
40
			}
41
		}
42
43
		try {
44
			$searchPage->write();
45
			$this->fail('Searchable fail should have failed to write');
46
		} catch (ValidationException $e) {
47
			$this->assertInstanceOf('ValidationException', $e);
48
			$expected = 'The field SearchableTestPage.Title has a zero weight. ; The field '.
49
			'SiteTree.Title has a zero weight. ; The field Page.Title has a zero weight. ';
50
			$this->assertEquals($expected, $e->getMessage());
51
		}
52
53
		//Effectively assert that the search page has not been written by checking LastEdited
54
		$pageFromDB = DataObject::get_by_id('ElasticSearchPage', $searchPage->ID);
55
		$this->assertEquals($lastEdited, $pageFromDB->LastEdited);
56
	}
57
58
59
	/* Weights must be positive */
@@ 60-86 (lines=27) @@
57
58
59
	/* Weights must be positive */
60
	public function testNegativeWeight() {
61
		$searchPage = $this->objFromFixture('ElasticSearchPage', 'search');
62
		$lastEdited = $searchPage->LastEdited;
63
64
		$extraFields = array('Searchable' => 1, 'SimilarSearchable' => 1, 'Active' => 1,
65
			'Weight' => -1);
66
		$esfs = $searchPage->ElasticaSearchableFields();
67
		foreach ($esfs as $sf) {
68
			if ($sf->Name == 'Title' || $sf->Name == 'Description') {
69
				$esfs->remove($sf);
70
				$esfs->add($sf, $extraFields);
71
			}
72
		}
73
74
		try {
75
			$searchPage->write();
76
			$this->fail('Searchable fail should have failed to write');
77
		} catch (ValidationException $e) {
78
			$this->assertInstanceOf('ValidationException', $e);
79
			$expected = 'The field SearchableTestPage.Title has a negative weight. ; The field '.
80
			'SiteTree.Title has a negative weight. ; The field Page.Title has a negative weight. ';
81
			$this->assertEquals($expected, $e->getMessage());
82
		}
83
		//Effectively assert that the search page has not been written by checking LastEdited
84
		$pageFromDB = DataObject::get_by_id('ElasticSearchPage', $searchPage->ID);
85
		$this->assertEquals($lastEdited, $pageFromDB->LastEdited);
86
	}
87
88
89
	public function testDefaultWeight() {