예제 #1
0
  @Test(expectedExceptions = ConflictException.class)
  public void shouldNotUpdateStackIfNewNameIsReserved() throws Exception {
    final StackImpl stack = stacks[0];
    stack.setName(stacks[1].getName());

    stackDao.update(stack);
  }
예제 #2
0
  @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);
  }
예제 #3
0
  @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)));
  }
예제 #4
0
  @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());
  }
예제 #5
0
  @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])));
  }
예제 #6
0
 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();
 }
예제 #7
0
  @Test
  public void shouldGetById() throws Exception {
    final StackImpl stack = stacks[0];

    assertEquals(stackDao.getById(stack.getId()), stack);
  }
예제 #8
0
  @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));
  }