public function testSaveSettings() { $namespace = 'some_namespace'; $storedSettingsArray = ['color' => 'red', 'interval' => 10, 'last_update' => '2014-06-01']; $namespaceParameters = []; foreach ($storedSettingsArray as $name => $value) { $parameter = new Parameter(); $parameter->setName($name); $parameter->setValue($value); $parameter->setNamespace($namespace); $namespaceParameters[] = $parameter; } $hydrator = new Hydrator\ArraySerializable(); $newSettingsArray = ['color' => 'black', 'interval' => 12, 'height' => 12, 'width' => 6]; $newSettings = new ArrayObject(); $hydrator->hydrate($newSettingsArray, $newSettings); $namespaceHydratorProvider = $this->getMock('HtSettingsModule\\Service\\NamespaceHydratorProviderInerface'); $namespaceHydratorProvider->expects($this->once())->method('getHydrator')->with($namespace)->will($this->returnValue($hydrator)); $settingsMapper = $this->getMock('HtSettingsModule\\Mapper\\SettingsMapperInterface'); $settingsMapper->expects($this->at(0))->method('findByNamespace')->with($namespace)->will($this->returnValue($namespaceParameters)); //var_dump($settingsMapper->findByNamespace($namespace));exit(); $updateParameter1 = Parameter::create($namespace, 'color', 'black'); $settingsMapper->expects($this->at(1))->method('updateParameter')->with($updateParameter1); $updateParameter2 = Parameter::create($namespace, 'interval', 12); $settingsMapper->expects($this->at(2))->method('updateParameter')->with($updateParameter2); $insertParameter1 = Parameter::create($namespace, 'height', 12); $settingsMapper->expects($this->at(3))->method('insertParameter')->with($insertParameter1); $insertParameter2 = Parameter::create($namespace, 'width', 6); $settingsMapper->expects($this->at(4))->method('insertParameter')->with($insertParameter2); $options = new ModuleOptions(); $settingsService = new SettingsService($options, $settingsMapper, $namespaceHydratorProvider); $settingsService->save($newSettings, $namespace); }
public function testInsert() { $adapter = $this->getMock('HtSettingsModule\\Mapper\\FileSystem\\Adapter\\AdapterInterface'); $adapter->expects($this->any())->method('getFileName')->will($this->returnValue('theme.json')); $fileSystem = $this->getMock('League\\Flysystem\\FilesystemInterface'); $mapper = new FileSystemMapper($fileSystem, new Parameter(), $adapter); $contents = 'foo:bar'; $adapter->expects($this->once())->method('prepareForWriting')->with(['color' => 'red'])->will($this->returnValue($contents)); $parameter = new Parameter(); $parameter->setNamespace('theme'); $parameter->setName('color'); $parameter->setValue('red'); $fileSystem->expects($this->once())->method('update')->with('theme.json', $contents); $mapper->insertParameter($parameter); }