public function testGetContentData() { $categoryEntity1 = new CategoryEntity(); $categoryTranslation1 = new CategoryTranslationEntity(); $categoryTranslation1->setLocale('en'); $categoryTranslation1->setTranslation('Category 1'); $categoryEntity1->addTranslation($categoryTranslation1); $categoryEntity2 = new CategoryEntity(); $categoryTranslation2 = new CategoryTranslationEntity(); $categoryTranslation2->setLocale('en'); $categoryTranslation2->setTranslation('Category 2'); $categoryEntity2->addTranslation($categoryTranslation2); $category1 = new Category($categoryEntity1, 'en'); $category2 = new Category($categoryEntity2, 'en'); $categoryManager = $this->prophesize(CategoryManagerInterface::class); $categoryManager->findByIds([1, 2])->willReturn([$categoryEntity1, $categoryEntity2]); $categoryManager->getApiObjects([$categoryEntity1, $categoryEntity2], 'de')->willReturn([$category1, $category2]); $categoryList = new CategoryList($categoryManager->reveal(), ''); $structure = $this->prophesize(StructureInterface::class); $structure->getLanguageCode()->willReturn('de'); $property = $this->prophesize(Property::class); $property->getValue()->willReturn([1, 2]); $property->getStructure()->willReturn($structure->reveal()); $result = $categoryList->getContentData($property->reveal()); $this->assertEquals([$category1->toArray(), $category2->toArray()], $result); $categoryManager->findByIds([1, 2])->shouldBeCalled(); $categoryManager->getApiObjects([$categoryEntity1, $categoryEntity2], 'de')->shouldBeCalled(); }
private function createCategory($key) { $category = new Category(); $category->setKey($key); $category->setDefaultLocale('en'); $this->em->persist($category); return $category; }
public function testGetChildrenAsList() { $this->markTestSkipped('Fix dme: https://github.com/sulu-cmf/sulu/issues/355'); $client = $this->createAuthenticatedClient(); $client->request('GET', '/api/categories/first-category-key/children?flat=true&sortBy=depth&sortOrder=desc'); $response = json_decode($client->getResponse()->getContent()); $this->assertEquals(200, $client->getResponse()->getStatusCode()); $this->assertEquals(2, count($response->_embedded->categories)); $this->assertEquals($this->category4->getId(), $response->_embedded->categories[0]->id); $this->assertEquals($this->category3->getId(), $response->_embedded->categories[1]->id); }
public function testRead() { $categoryEntity1 = new CategoryEntity(); $categoryTranslation1 = new CategoryTranslationEntity(); $categoryTranslation1->setLocale('en'); $categoryTranslation1->setTranslation('Category 1'); $categoryEntity1->addTranslation($categoryTranslation1); $categoryEntity2 = new CategoryEntity(); $categoryTranslation2 = new CategoryTranslationEntity(); $categoryTranslation2->setLocale('en'); $categoryTranslation2->setTranslation('Category 2'); $categoryEntity2->addTranslation($categoryTranslation2); $category1 = new Category($categoryEntity1, 'en'); $category2 = new Category($categoryEntity2, 'en'); $this->categoryManager->expects($this->any())->method('findByIds')->will($this->returnValueMap([[[1, 2], [$categoryEntity1, $categoryEntity2]]])); $this->categoryManager->expects($this->any())->method('getApiObjects')->will($this->returnValueMap([[[$categoryEntity1, $categoryEntity2], 'en', [$category1, $category2]]])); $node = $this->getMockBuilder('PHPCR\\NodeInterface')->getMock(); $node->expects($this->any())->method('getPropertyValueWithDefault')->will($this->returnValueMap([['property', [], [1, 2]]])); $property = $this->getMockBuilder('Sulu\\Component\\Content\\Compat\\PropertyInterface')->getMock(); $property->expects($this->any())->method('getName')->willReturn('property'); $property->expects($this->any())->method('setValue')->with([$category1->toArray(), $category2->toArray()]); $this->categoryManager->expects($this->once())->method('findByIds'); $this->categoryList->read($node, $property, null, 'en', null); }
/** * Creates a new category with given data. * * @param $data * @param $user * * @return CategoryEntity */ private function createCategory($data, $user) { $categoryEntity = new CategoryEntity(); $categoryEntity->setCreator($user); $categoryEntity->setChanger($user); $categoryWrapper = $this->getApiObject($categoryEntity, $data['locale']); $categoryWrapper->setName($data['name']); if (array_key_exists('key', $data)) { $categoryWrapper->setKey($data['key']); } if (array_key_exists('meta', $data)) { $categoryWrapper->setMeta($data['meta']); } if (array_key_exists('parent', $data)) { $parentEntity = $this->findById($data['parent']); $categoryWrapper->setParent($parentEntity); } $categoryEntity = $categoryWrapper->getEntity(); $this->em->persist($categoryEntity); $this->em->flush(); return $categoryEntity; }
public function testGetFallbacks() { $category = new Category(); $category->setDefaultLocale('en'); $categoryTrans = new CategoryTranslation(); $categoryTrans->setLocale('en'); $categoryTrans->setTranslation('EN'); $categoryTrans->setCategory($category); $category->addTranslation($categoryTrans); $categoryTrans = new CategoryTranslation(); $categoryTrans->setLocale('en_us'); $categoryTrans->setTranslation('EN-US'); $categoryTrans->setCategory($category); $category->addTranslation($categoryTrans); $this->em->persist($category); $this->em->flush(); $client = $this->createAuthenticatedClient(); $client->request('GET', '/api/categories/' . $category->getId() . '?locale=de'); $response = json_decode($client->getResponse()->getContent()); $this->assertEquals(200, $client->getResponse()->getStatusCode()); $this->assertEquals('en', $response->locale); $this->assertEquals('en', $response->defaultLocale); $this->assertEquals('EN', $response->name); $client->request('GET', '/api/categories/' . $category->getId() . '?locale=en_us'); $response = json_decode($client->getResponse()->getContent()); $this->assertEquals(200, $client->getResponse()->getStatusCode()); $this->assertEquals('en_us', $response->locale); $this->assertEquals('en', $response->defaultLocale); $this->assertEquals('EN-US', $response->name); }
private function initOrm() { $this->purgeDatabase(); $contact = new Contact(); $contact->setFirstName('Max'); $contact->setLastName('Mustermann'); $contact->setPosition('CEO'); $contact->setFormOfAddress(1); $contact->setSalutation('Sehr geehrter Herr Dr Mustermann'); $contact->setDisabled(0); $this->contact = $contact; $title = new ContactTitle(); $title->setTitle('MSc'); $contact->setTitle($title); $position = new Position(); $position->setPosition('Manager'); $account = new Account(); $account->setLft(0); $account->setRgt(1); $account->setDepth(0); $account->setName('Musterfirma'); $this->account = $account; $account1 = new Account(); $account1->setLft(0); $account1->setRgt(1); $account1->setDepth(0); $account1->setName('Musterfirma'); $this->account1 = $account1; $phoneType = new PhoneType(); $phoneType->setName('Private'); $this->phoneType = $phoneType; $phone = new Phone(); $phone->setPhone('123456789'); $phone->setPhoneType($phoneType); $contact->addPhone($phone); $this->phone = $phone; $emailType = new EmailType(); $emailType->setName('Private'); $this->emailType = $emailType; $email = new Email(); $email->setEmail('*****@*****.**'); $email->setEmailType($emailType); $contact->addEmail($email); $this->email = $email; $faxType = new FaxType(); $faxType->setName('Private'); $this->faxType = $faxType; $fax = new Fax(); $fax->setFax('123654789'); $fax->setFaxType($faxType); $contact->addFax($fax); $this->fax = $fax; $country1 = new Country(); $country1->setName('Musterland'); $country1->setCode('ML'); $this->country = $country1; $country2 = new Country(); $country2->setName('United States'); $country2->setCode('US'); $this->country2 = $country2; $addressType = new AddressType(); $addressType->setName('Private'); $this->addressType = $addressType; $address = new Address(); $address->setStreet('Musterstraße'); $address->setNumber('1'); $address->setZip('0000'); $address->setCity('Musterstadt'); $address->setState('Musterland'); $address->setCountry($country1); $address->setAddressType($addressType); $address->setBillingAddress(true); $address->setPrimaryAddress(true); $address->setDeliveryAddress(false); $address->setPostboxCity('Dornbirn'); $address->setPostboxPostcode('6850'); $address->setPostboxNumber('4711'); $address->setNote('Note'); $this->address = $address; $contactAddress = new ContactAddress(); $contactAddress->setAddress($address); $contactAddress->setContact($contact); $contactAddress->setMain(true); $this->contactAddress = $contactAddress; $contact->addContactAddress($contactAddress); $address->addContactAddress($contactAddress); $note = new Note(); $note->setValue('Note'); $this->note = $note; $contact->addNote($note); $this->em->persist($contact); $this->em->persist($title); $this->em->persist($position); $this->em->persist($account); $this->em->persist($account1); $this->em->persist($phoneType); $this->em->persist($phone); $this->em->persist($faxType); $this->em->persist($fax); $this->em->persist($emailType); $this->em->persist($email); $this->em->persist($country1); $this->em->persist($country2); $this->em->persist($addressType); $this->em->persist($contactAddress); $this->em->persist($address); $this->em->persist($note); /* First Category -------------------------------------*/ $category = new Category(); $category->setKey('first-category-key'); $this->category = $category; // name for first category $categoryTrans = new CategoryTranslation(); $categoryTrans->setLocale('en'); $categoryTrans->setTranslation('First Category'); $categoryTrans->setCategory($category); $category->addTranslation($categoryTrans); // meta for first category $categoryMeta = new CategoryMeta(); $categoryMeta->setLocale('en'); $categoryMeta->setKey('description'); $categoryMeta->setValue('Description of Category'); $categoryMeta->setCategory($category); $category->addMeta($categoryMeta); $this->em->persist($category); /* Second Category -------------------------------------*/ $category2 = new Category(); $category2->setKey('second-category-key'); $this->category2 = $category2; // name for second category $categoryTrans2 = new CategoryTranslation(); $categoryTrans2->setLocale('de'); $categoryTrans2->setTranslation('Second Category'); $categoryTrans2->setCategory($category2); $category2->addTranslation($categoryTrans2); // meta for second category $categoryMeta2 = new CategoryMeta(); $categoryMeta2->setLocale('de'); $categoryMeta2->setKey('description'); $categoryMeta2->setValue('Description of second Category'); $categoryMeta2->setCategory($category2); $category2->addMeta($categoryMeta2); $this->em->persist($category2); $this->em->flush(); $this->contactTitle = $title; $this->contactPosition = $position; }