Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * @group test
- */
- public function testAllFilterAndCretedNotificationAction()
- {
- $this->loadFixtures([
- [Entity\Project::class, 1],
- [Entity\Users::class, 7],
- [Entity\Developer::class, 4],
- [Entity\Skill::class, 6],
- [Entity\Teams::class, 2]
- ]);
- $users = $this->getEntityManager()->getRepository(Entity\Users::class)->findAll();
- $this->user = $users[0];
- $this->user->setRoles([Entity\Users::ROLE_ADMIN]);
- /** @var Entity\Project[] $projects */
- $projects = $this->projectRepository->findAll();
- $this->assertCount(1, $projects);
- $project = $projects[0];
- /** @var Entity\Users[] $users */
- $users = $this->usersRepository->findAll();
- $this->assertCount(7, $users);
- /** @var Entity\Developer[] $developers */
- $developers = $this->developerRepository->findAll();
- $this->assertCount(4, $developers);
- /** @var Entity\Skill[] $skills */
- $skills = $this->skillRepository->findAll();
- $this->assertCount(6, $skills);
- /** @var Entity\Teams[] $teams */
- $teams = $this->teamRepository->findAll();
- $this->assertCount(2, $teams);
- /** @var Entity\CodeProjectNotifications[] $notifications */
- $notifications = $this->notificationRepository->findAll();
- $this->assertCount(0, $notifications);
- $requestArraySkillIds1 = [];
- $requestArraySkillIds2 = [];
- $setArraySkills1 = [];
- $setArraySkills2 = [];
- foreach ($skills as $key=>$skill) {
- if ($key%2 == 0) {
- $requestArraySkillIds1 [] = $skill->getId();
- $setArraySkills1 [] = $skill;
- } else {
- $requestArraySkillIds2 [] = $skill->getId();
- $setArraySkills2 [] = $skill;
- }
- }
- $user1 = $users[1]->setDeveloper($developers[0]);
- $developer1 = $developers[0]->setUser($users[1]);
- $user1->setRoles([Entity\Users::ROLE_FREELANCER]);
- $developer1->setSkillRelations($setArraySkills1);
- $manager1 = $users[2]->setTeams($teams[0]);
- $teams[0]->addUser($users[2]);
- $manager1->setRoles([Entity\Users::ROLE_COMPANY]);
- $user2 = $users[3]->setDeveloper($developers[1]);
- $developer2 = $developers[1]->setUser($users[3]);
- $user2->setRoles([Entity\Users::ROLE_DEVELOPER]);
- $developer2->setSkillRelations($setArraySkills2);
- $teams[0]->addDeveloper($developer2);
- $developer2->setTeams($teams[0]);
- $manager2 = $users[4]->setTeams($teams[1]);
- $teams[1]->addUser($users[4]);
- $manager2->setRoles([Entity\Users::ROLE_COMPANY]);
- $user3 = $users[5]->setDeveloper($developers[2]);
- $developer3 = $developers[2]->setUser($users[5]);
- $user3->setRoles([Entity\Users::ROLE_DEVELOPER]);
- $developer3->setSkillRelations($setArraySkills2);
- $teams[1]->addDeveloper($developer3);
- $developer3->setTeams($teams[1]);
- $user4 = $users[6]->setDeveloper($developers[3]);
- $developer4 = $developers[3]->setUser($users[6]);
- $user4->setRoles([Entity\Users::ROLE_FREELANCER]);
- $developer4->setSkillRelations($setArraySkills2);
- $this->getEntityManager()->persist($this->user);
- $this->getEntityManager()->flush();
- $this->getEntityManager()->clear();
- $expected['array_id_manager'][] = $manager1->getId();
- $expected['array_id_manager'][] = $manager2->getId();
- $expected['array_id_developer'][] = $user4->getId();
- $this->request(
- 'post',
- $this->generateUrl('post_notifications_array_id_entity', [], UrlGeneratorInterface::RELATIVE_PATH),
- [],
- [
- 'api_user_id' => $this->user->getId(),
- 'api_user_token' => $this->user->getSecurityToken(),
- 'skills' => $requestArraySkillIds2,
- 'project_id' => $project->getId()
- ]
- );
- $this->assertEquals(200, $this->getResponseStatus());
- $data = json_decode($this->getResponseContent(), true);
- $this->validateResponseData($expected, $data, 'array_id_manager');
- $this->validateResponseData($expected, $data, 'array_id_developer');
- $expectedDevelopers = [$user4];
- $path = $this->generateUrl('post_notifications_developer', [], UrlGeneratorInterface::ABSOLUTE_PATH);
- $this->request(
- 'post',
- $path,
- [],
- [
- 'api_user_id' => $this->user->getId(),
- 'api_user_token' => $this->user->getSecurityToken(),
- 'skills' => $requestArraySkillIds2,
- 'project_id' => $project->getId()
- ]
- );
- $this->assertEquals(200, $this->getResponseStatus());
- /** @var Entity\Users[] $dataDeveloper */
- $dataDeveloper = json_decode($this->getResponseContent(), true);
- $this->validateData($expectedDevelopers, $dataDeveloper, 'developer');
- $this->checkRoute(['post'], $this->generateUrl('post_notifications_developer', [], UrlGeneratorInterface::RELATIVE_PATH), [], [
- 'api_user_token' => $this->user->getSecurityToken(),
- 'api_user_id' => $this->user->getId(),
- ]);
- $this->invalidAuthChecking($this->user, 'post', $this->generateUrl('post_notifications_developer', [], UrlGeneratorInterface::RELATIVE_PATH), [], [
- 'project_id' => $project->getId(),
- ]);
- $expectedManagers = [$manager1, $manager2];
- $path = $this->generateUrl('post_notifications_manager', [], UrlGeneratorInterface::ABSOLUTE_PATH);
- $this->request(
- 'post',
- $path,
- [],
- [
- 'api_user_id' => $this->user->getId(),
- 'api_user_token' => $this->user->getSecurityToken(),
- 'skills' => $requestArraySkillIds2,
- 'project_id' => $project->getId()
- ]
- );
- $this->assertEquals(200, $this->getResponseStatus());
- /** @var Entity\Users[] $dataDeveloper */
- $dataManager = json_decode($this->getResponseContent(), true);
- $this->validateData($expectedManagers, $dataManager, 'manager');
- $this->checkRoute(['post'], $this->generateUrl('post_notifications_manager', [], UrlGeneratorInterface::RELATIVE_PATH), [], [
- 'api_user_token' => $this->user->getSecurityToken(),
- 'api_user_id' => $this->user->getId(),
- ]);
- $this->invalidAuthChecking($this->user, 'post', $this->generateUrl('post_notifications_manager', [], UrlGeneratorInterface::RELATIVE_PATH), [], [
- 'project_id' => $project->getId(),
- ]);
- $dataNotificationPost['array_id_developer'] = $data['array_id_developer'];
- $dataNotificationPost['array_id_manager'] = $data['array_id_manager'];
- $dataNotificationPost['notification']['skills'] = $data['notification']['skills'];
- $dataNotificationPost['notification']['project_id'] = $data['notification']['project_id'];
- $dataNotificationPost['notification']['count_developer'] = $data['count_developer'];
- $dataNotificationPost['notification']['count_manager'] = $data['count_manager'];
- $dataNotificationPost['api_user_id'] = $data['notification']['api_user_id'];
- $dataNotificationPost['api_user_token'] = $data['notification']['api_user_token'];
- $authorUser = $this->usersRepository->findOneBy([
- 'id' => $users[0]->getId()
- ]);
- $expectedCodeProjectNotifications = (new Entity\CodeProjectNotifications())
- ->setProjectId($project)
- ->setUserId($authorUser)
- ->setParameters($dataNotificationPost['notification'])
- ->setDeveloperId($dataNotificationPost['array_id_developer'])
- ->setMatchesId([])
- ->setManagerId($dataNotificationPost['array_id_manager']);
- $this->getEntityManager()->persist($expectedCodeProjectNotifications);
- $this->getEntityManager()->flush();
- $this->getEntityManager()->clear();
- $path = $this->generateUrl('post_create_project_entity_notifications', [], UrlGeneratorInterface::ABSOLUTE_PATH);
- $this->request(
- 'post',
- $path,
- [],
- $dataNotificationPost
- );
Advertisement
Add Comment
Please, Sign In to add comment