summaryrefslogtreecommitdiff
path: root/www/wiki/extensions/SemanticMediaWiki/tests/phpunit/Utils/Validators/ExportDataValidator.php
blob: fc89a262a9cbb624eeb932092233185545464252 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
<?php

namespace SMW\Tests\Utils\Validators;

use SMWExpData as ExpData;
use SMWExpResource as ExpResource;

/**
 * @license GNU GPL v2+
 * @since   2.0
 *
 * @author mwjames
 */
class ExportDataValidator extends \PHPUnit_Framework_Assert {

	/**
	 * @since 2.0
	 *
	 * @param mixed $expected
	 * @param ExpData $exportData
	 */
	public function assertThatExportDataContainsProperty( $expectedProperties, ExpData $exportData ) {

		$expProperties = $exportData->getProperties();

		$this->assertNotEmpty( $expProperties );

		$expectedProperties = is_array( $expectedProperties ) ? $expectedProperties : [ $expectedProperties ];
		$expectedToCount  = count( $expectedProperties );
		$actualComparedToCount = 0;

		$assertThatExportDataContainsProperty = false;

		foreach ( $expProperties as $expProperty ) {
			foreach ( $expectedProperties as $expectedProperty ) {
				if ( $expectedProperty->getHash() === $expProperty->getHash() ) {
					$actualComparedToCount++;
					$assertThatExportDataContainsProperty = true;
				}
			}
		}

		$this->assertTrue( $assertThatExportDataContainsProperty );

		$this->assertEquals(
			$expectedToCount,
			$actualComparedToCount
		);
	}

	/**
	 * @since 2.0
	 *
	 * @param mixed $expected
	 * @param ExpResource $selectedElement
	 * @param ExpData $exportData
	 */
	public function assertThatExportDataContainsResource( $expectedResources, ExpResource $selectedElement, ExpData $exportData ) {

		$expElements = $exportData->getValues( $selectedElement );

		$this->assertNotEmpty( $expElements );

		$expectedResources = is_array( $expectedResources ) ? $expectedResources : [ $expectedResources ];
		$expectedToCount  = count( $expectedResources );
		$actualComparedToCount = 0;

		$assertThatExportDataContainsResource = false;

		foreach ( $expElements as $expElement ) {
			foreach ( $expectedResources as $expectedResource ) {
				if ( $expectedResource->getHash() === $expElement->getHash() ) {
					$actualComparedToCount++;
					$assertThatExportDataContainsResource = true;
				}
			}
		}

		$this->assertTrue(
			$assertThatExportDataContainsResource,
			'Asserts that a resource is set'
		);

		$this->assertEquals(
			$expectedToCount,
			$actualComparedToCount,
			'Asserts that all listed resources are set'
		);
	}

}