test_class.declarator: PROJECT_ID = "project"
test_class.modifier: private final
test_class.original_string: private final String PROJECT_ID = "project";
test_class.type: String
test_class.var_name: PROJECT_ID
test_class.declarator: projectRepo
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private ProjectRepository projectRepo;
test_class.type: ProjectRepository
test_class.var_name: projectRepo
test_class.declarator: applicationRepo
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private ProjectApplicationRepository applicationRepo;
test_class.type: ProjectApplicationRepository
test_class.var_name: applicationRepo
test_class.declarator: userRepo
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private UserRepository userRepo;
test_class.type: UserRepository
test_class.var_name: userRepo
test_class.declarator: userService
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private UserService userService;
test_class.type: UserService
test_class.var_name: userService
test_class.declarator: projectMock
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private Project projectMock;
test_class.type: Project
test_class.var_name: projectMock
test_class.declarator: userMock
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private User userMock;
test_class.type: User
test_class.var_name: userMock
test_class.declarator: clock
test_class.modifier: private
test_class.original_string: private Clock clock;
test_class.type: Clock
test_class.var_name: clock
test_class.declarator: projectService
test_class.modifier: private
test_class.original_string: private RepositoryProjectService projectService;
test_class.type: RepositoryProjectService
test_class.var_name: projectService
test_class.file: backend/project-board/src/test/java/de/adesso/projectboard/ad/project/service/RepositoryProjectServiceTest.java
test_class.identifier: RepositoryProjectServiceTest
test_case.body: @Test
      public void createProject() {
          // given
          String expectedStatus = "Status";
          String expectedIssueType = "Issue Type";
          String expectedTitle = "Title";
          List<String> expectedLabels = Arrays.asList("Label 1", "Label 2");
          String expectedJob = "Job";
          String expectedSkills = "Skills";
          String expectedDescription = "Description";
          String expectedLob = "LOB Test";
          String expectedCustomer = "Customer";
          String expectedLocation = "Anywhere";
          String expectedOperationStart = "Maybe tomorrow";
          String expectedOperationEnd = "Maybe never";
          String expectedEffort = "100h per week";
          String expectedFreelancer = "Yup";
          String expectedElongation = "Nope";
          String expectedOther = "Other stuff";
          String expectedDayRate = "Day Rate";
          String expectedTravelCostsCompensated = "Compensated";
  
          Project project = new Project("Other ID", expectedStatus, expectedIssueType, expectedTitle, expectedLabels, expectedJob, expectedSkills,
                  expectedDescription, expectedLob, expectedCustomer,
                  expectedLocation, expectedOperationStart, expectedOperationEnd,
                  expectedEffort, null, null, expectedFreelancer, expectedElongation, expectedOther, expectedDayRate, expectedTravelCostsCompensated);
  
          given(projectRepo.save(project)).willReturn(project);
  
          // when
          Project createdProject = projectService.createProject(project);
  
          // then
          SoftAssertions softly = new SoftAssertions();
  
          softly.assertThat(createdProject.getStatus()).isEqualTo(expectedStatus);
          softly.assertThat(createdProject.getIssuetype()).isEqualTo(expectedIssueType);
          softly.assertThat(createdProject.getTitle()).isEqualTo(expectedTitle);
          softly.assertThat(createdProject.getLabels()).isEqualTo(expectedLabels);
          softly.assertThat(createdProject.getJob()).isEqualTo(expectedJob);
          softly.assertThat(createdProject.getSkills()).isEqualTo(expectedSkills);
          softly.assertThat(createdProject.getDescription()).isEqualTo(expectedDescription);
          softly.assertThat(createdProject.getLob()).isEqualTo(expectedLob);
          softly.assertThat(createdProject.getCustomer()).isEqualTo(expectedCustomer);
          softly.assertThat(createdProject.getLocation()).isEqualTo(expectedLocation);
          softly.assertThat(createdProject.getOperationStart()).isEqualTo(expectedOperationStart);
          softly.assertThat(createdProject.getOperationEnd()).isEqualTo(expectedOperationEnd);
          softly.assertThat(createdProject.getEffort()).isEqualTo(expectedEffort);
          softly.assertThat(createdProject.getFreelancer()).isEqualTo(expectedFreelancer);
          softly.assertThat(createdProject.getElongation()).isEqualTo(expectedElongation);
          softly.assertThat(createdProject.getOther()).isEqualTo(expectedOther);
          softly.assertThat(createdProject.getCreated()).isEqualTo(LocalDateTime.now(clock));
          softly.assertThat(createdProject.getUpdated()).isEqualTo(LocalDateTime.now(clock));
  
          softly.assertAll();
      }
test_case.class_method_signature: RepositoryProjectServiceTest.createProject()
test_case.full_signature: @Test public void createProject()
test_case.identifier: createProject
test_case.invocations: asList willReturn given save createProject isEqualTo assertThat getStatus isEqualTo assertThat getIssuetype isEqualTo assertThat getTitle isEqualTo assertThat getLabels isEqualTo assertThat getJob isEqualTo assertThat getSkills isEqualTo assertThat getDescription isEqualTo assertThat getLob isEqualTo assertThat getCustomer isEqualTo assertThat getLocation isEqualTo assertThat getOperationStart isEqualTo assertThat getOperationEnd isEqualTo assertThat getEffort isEqualTo assertThat getFreelancer isEqualTo assertThat getElongation isEqualTo assertThat getOther isEqualTo assertThat getCreated now isEqualTo assertThat getUpdated now assertAll
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void createProject()
focal_class.declarator: projectRepo
focal_class.modifier: private final
focal_class.original_string: private final ProjectRepository projectRepo;
focal_class.type: ProjectRepository
focal_class.var_name: projectRepo
focal_class.declarator: applicationRepo
focal_class.modifier: private final
focal_class.original_string: private final ProjectApplicationRepository applicationRepo;
focal_class.type: ProjectApplicationRepository
focal_class.var_name: applicationRepo
focal_class.declarator: userRepo
focal_class.modifier: private final
focal_class.original_string: private final UserRepository userRepo;
focal_class.type: UserRepository
focal_class.var_name: userRepo
focal_class.declarator: userService
focal_class.modifier: private final
focal_class.original_string: private final UserService userService;
focal_class.type: UserService
focal_class.var_name: userService
focal_class.declarator: clock
focal_class.modifier: private final
focal_class.original_string: private final Clock clock;
focal_class.type: Clock
focal_class.var_name: clock
focal_class.file: backend/project-board/src/main/java/de/adesso/projectboard/ad/project/service/RepositoryProjectService.java
focal_class.identifier: RepositoryProjectService
focal_class.interfaces: implements ProjectService
focal_class.class_method_signature: RepositoryProjectService.RepositoryProjectService(ProjectRepository projectRepo,
                                      ProjectApplicationRepository applicationRepo,
                                      UserRepository userRepo,
                                      UserService userService,
                                      Clock clock)
focal_class.full_signature: @Autowired public  RepositoryProjectService(ProjectRepository projectRepo,
                                      ProjectApplicationRepository applicationRepo,
                                      UserRepository userRepo,
                                      UserService userService,
                                      Clock clock)
focal_class.identifier: RepositoryProjectService
focal_class.modifiers: @Autowired public
focal_class.parameters: (ProjectRepository projectRepo,
                                      ProjectApplicationRepository applicationRepo,
                                      UserRepository userRepo,
                                      UserService userService,
                                      Clock clock)
focal_class.signature:  RepositoryProjectService(ProjectRepository projectRepo,
                                      ProjectApplicationRepository applicationRepo,
                                      UserRepository userRepo,
                                      UserService userService,
                                      Clock clock)
focal_class.class_method_signature: RepositoryProjectService.getProjectById(String projectId)
focal_class.full_signature: @Override @Transactional(readOnly = true) public Project getProjectById(String projectId)
focal_class.identifier: getProjectById
focal_class.modifiers: @Override @Transactional(readOnly = true) public
focal_class.parameters: (String projectId)
focal_class.return: Project
focal_class.signature: Project getProjectById(String projectId)
focal_class.class_method_signature: RepositoryProjectService.projectExists(String projectId)
focal_class.full_signature: @Override @Transactional(readOnly = true) public boolean projectExists(String projectId)
focal_class.identifier: projectExists
focal_class.modifiers: @Override @Transactional(readOnly = true) public
focal_class.parameters: (String projectId)
focal_class.return: boolean
focal_class.signature: boolean projectExists(String projectId)
focal_class.class_method_signature: RepositoryProjectService.save(Project project)
focal_class.full_signature: @Override public Project save(Project project)
focal_class.identifier: save
focal_class.modifiers: @Override public
focal_class.parameters: (Project project)
focal_class.return: Project
focal_class.signature: Project save(Project project)
focal_class.class_method_signature: RepositoryProjectService.saveAll(List<Project> projects)
focal_class.full_signature: @Override public List<Project> saveAll(List<Project> projects)
focal_class.identifier: saveAll
focal_class.modifiers: @Override public
focal_class.parameters: (List<Project> projects)
focal_class.return: List<Project>
focal_class.signature: List<Project> saveAll(List<Project> projects)
focal_class.class_method_signature: RepositoryProjectService.createProject(Project project)
focal_class.full_signature: @Override public Project createProject(Project project)
focal_class.identifier: createProject
focal_class.modifiers: @Override public
focal_class.parameters: (Project project)
focal_class.return: Project
focal_class.signature: Project createProject(Project project)
focal_class.class_method_signature: RepositoryProjectService.createOrUpdateProject(Project project, String projectId)
focal_class.full_signature:  Project createOrUpdateProject(Project project, String projectId)
focal_class.identifier: createOrUpdateProject
focal_class.parameters: (Project project, String projectId)
focal_class.return: Project
focal_class.signature: Project createOrUpdateProject(Project project, String projectId)
focal_method.body: @Override
      public Project createProject(Project project) {
          return createOrUpdateProject(project, null);
      }
focal_method.class_method_signature: RepositoryProjectService.createProject(Project project)
focal_method.full_signature: @Override public Project createProject(Project project)
focal_method.identifier: createProject
focal_method.invocations: createOrUpdateProject
focal_method.modifiers: @Override public
focal_method.parameters: (Project project)
focal_method.return: Project
focal_method.signature: Project createProject(Project project)