/** * Creates a new use case in the current model, and returns a part for building * its details. If a use case with the specified name already exists, returns a * part for the existing use case. * * @param useCaseName * the name of the existing use case / use case to be created. * @return the created / found use case's part. */ public UseCasePart useCase(String useCaseName) { UseCase useCase = model.hasUseCase(useCaseName) ? model.findUseCase(useCaseName) : model.newUseCase(useCaseName); return new UseCasePart(useCase, this); }
@Test public void createsSingleUseCase() { modelBuilder.useCase(USE_CASE); Model model = modelBuilder.build(); assertTrue(model.hasUseCase(USE_CASE)); Collection<UseCase> useCases = model.getUseCases(); assertEquals(1, useCases.size()); assertEquals(USE_CASE, useCases.iterator().next().getName()); }
@Test public void accessesExistingUseCaseTwice() { modelBuilder.useCase(USE_CASE); modelBuilder.useCase(USE_CASE); Model model = modelBuilder.build(); assertTrue(model.hasUseCase(USE_CASE)); Collection<UseCase> useCases = model.getUseCases(); assertEquals(1, useCases.size()); assertEquals(USE_CASE, useCases.iterator().next().getName()); }