public function expDataProvider()
 {
     $serializier = new ExpDataSerializer();
     #0
     $expData = new ExpData(new ExpNsResource('Foo', 'Bar', 'Mo', null));
     $provider[] = array($serializier->serialize($expData), $expData);
     #1
     $expData = new ExpData(new ExpNsResource('Foo', 'Bar', 'Mo', null));
     $expData->addPropertyObjectValue(new ExpNsResource('Li', 'La', 'Lu', null), new ExpLiteral('Foo', 'Bar'));
     $provider[] = array($serializier->serialize($expData), $expData);
     #2 Nested
     $expData = new ExpData(new ExpNsResource('Foo', 'Bar', 'Mo', null));
     $expData->addPropertyObjectValue(new ExpNsResource('Li', 'La', 'Lu', new DIBlob('SomeText')), new ExpLiteral('Foo', 'Bar'));
     $expData->addPropertyObjectValue(new ExpNsResource('Li', 'La', 'Lu', null), new ExpData(new ExpNsResource('Foo', 'Bar', 'Mo', new DIBlob('SomeOtherText'))));
     $provider[] = array($serializier->serialize($expData), $expData);
     #2 Nested level 2+3
     $expDataLevel2 = new ExpData(new ExpNsResource('Foo', 'Bar', 'Mo', new DIBlob('SomeOtherText')));
     $expDataLevel2->addPropertyObjectValue(new ExpNsResource('Li', 'La', 'Lu', new DIBlob('SomeText')), new ExpLiteral('Foo', 'Bar'));
     $expDataLevel2->addPropertyObjectValue(new ExpNsResource('Li', 'La', 'Lu', null), new ExpData(new ExpNsResource('Foo', 'Bar', 'Mo', null)));
     $expData = new ExpData(new ExpNsResource('Foo', 'Bar', 'Mo', null));
     $expData->addPropertyObjectValue(new ExpNsResource('Li', 'La', 'Lu', new DIBlob('SomeText')), new ExpLiteral('Foo', 'Bar'));
     $expData->addPropertyObjectValue(new ExpNsResource('Li', 'La', 'Lu', null), $expDataLevel2);
     $provider[] = array($serializier->serialize($expData), $expData);
     return $provider;
 }
 /**
  * @dataProvider expDataProvider
  */
 public function testSerialize($data, $expected)
 {
     $instance = new ExpDataSerializer();
     $this->assertEquals($expected, $instance->serialize($data));
 }