@Test(expectedExceptions = ConflictException.class) public void shouldNotUpdateStackIfNewNameIsReserved() throws Exception { final StackImpl stack = stacks[0]; stack.setName(stacks[1].getName()); stackDao.update(stack); }
@Test(dependsOnMethods = "shouldGetById") public void shouldCreateStack() throws Exception { final StackImpl stack = createStack("new-stack", "new-stack-name"); stackDao.create(stack); assertEquals(stackDao.getById(stack.getId()), stack); }
@Test public void shouldReturnAllStacksWhenSearchingWithoutTags() throws Exception { final List<StackImpl> found = stackDao.searchStacks(null, null, 0, 0); found.forEach(s -> Collections.sort(s.getTags())); for (StackImpl stack : stacks) { Collections.sort(stack.getTags()); } assertEquals(new HashSet<>(found), new HashSet<>(asList(stacks))); }
@Test( expectedExceptions = NotFoundException.class, dependsOnMethods = "shouldThrowNotFoundExceptionWhenGettingNonExistingStack") public void shouldRemoveStack() throws Exception { final StackImpl stack = stacks[0]; stackDao.remove(stack.getId()); // Should throw an exception stackDao.getById(stack.getId()); }
@Test(dependsOnMethods = "shouldUpdateStack") public void shouldFindStacksWithSpecifiedTags() throws Exception { stacks[0].getTags().addAll(asList("search-tag1", "search-tag2")); stacks[1].getTags().addAll(asList("search-tag1", "non-search-tag")); stacks[2].getTags().addAll(asList("non-search-tag", "search-tag2")); stacks[3].getTags().addAll(asList("search-tag1", "search-tag2", "another-tag")); updateAll(); final List<StackImpl> found = stackDao.searchStacks(null, asList("search-tag1", "search-tag2"), 0, 0); found.forEach(s -> Collections.sort(s.getTags())); for (StackImpl stack : stacks) { Collections.sort(stack.getTags()); } assertEquals(new HashSet<>(found), new HashSet<>(asList(stacks[0], stacks[3]))); }
private static StackImpl createStack(String id, String name) { return StackImpl.builder() .setId(id) .setName(name) .setCreator("user123") .setDescription(id + "-description") .setScope(id + "-scope") .setWorkspaceConfig(createWorkspaceConfig("test")) .setTags(asList(id + "-tag1", id + "-tag2")) .setComponents( asList( new StackComponentImpl(id + "-component1", id + "-component1-version"), new StackComponentImpl(id + "-component2", id + "-component2-version"))) .setSource(new StackSourceImpl(id + "-type", id + "-origin")) .setStackIcon( new StackIcon(id + "-icon", id + "-media-type", "0x1234567890abcdef".getBytes())) .build(); }
@Test public void shouldGetById() throws Exception { final StackImpl stack = stacks[0]; assertEquals(stackDao.getById(stack.getId()), stack); }
@Test(dependsOnMethods = "shouldGetById") public void shouldUpdateStack() throws Exception { final StackImpl stack = stacks[0]; stack.setName("new-name"); stack.setCreator("new-creator"); stack.setDescription("new-description"); stack.setScope("new-scope"); stack.getTags().clear(); stack.getTags().add("new-tag"); // Remove an existing component stack.getComponents().remove(1); // Add a new component stack.getComponents().add(new StackComponentImpl("component3", "component3-version")); // Update an existing component final StackComponentImpl component = stack.getComponents().get(0); component.setName("new-name"); component.setVersion("new-version"); // Updating source final StackSourceImpl source = stack.getSource(); source.setType("new-type"); source.setOrigin("new-source"); // Set a new icon stack.setStackIcon(new StackIcon("new-name", "new-media", "new-data".getBytes())); stackDao.update(stack); assertEquals(stackDao.getById(stack.getId()), new StackImpl(stack)); }