refactor Subcommand to abstract class, add add link and tag subcommands
Some checks failed
continuous-integration/drone/push Build is failing

This commit is contained in:
qvalentin 2022-05-15 13:19:33 +02:00
parent 4e74f8b10e
commit 78730bc69f
Signed by: qvalentin
GPG key ID: C979FA1EAFCABF1C
7 changed files with 170 additions and 11 deletions

View file

@ -0,0 +1,63 @@
package cli.link;
import org.junit.jupiter.api.Test;
import org.mockito.ArgumentCaptor;
import java.util.Set;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.mock;
class LinkCommandsTest {
LinkCliAdapter mockAdapter = mock(LinkCliAdapter.class);
@Test
void addCommandWorks() {
var url = "http://tea.filefighter.de";
var username = "mario";
var category1 = "funStuff";
var category2 = "workStuff";
ArgumentCaptor<String> captureUrl = ArgumentCaptor.forClass(String.class);
ArgumentCaptor<String> captureUsername = ArgumentCaptor.forClass(String.class);
ArgumentCaptor<Set<String>> captureCategories = ArgumentCaptor.forClass(Set.class);
doNothing()
.when(mockAdapter)
.addLink(captureUrl.capture(), captureCategories.capture(), captureUsername.capture());
var sut = new LinkCommands(mockAdapter);
var returnValue = sut.executeSubcommand(new String[]{"add", url, username, category1, category2});
assertEquals("Added the new Link", returnValue);
assertEquals(url, captureUrl.getValue());
assertEquals(username, captureUsername.getValue());
assertEquals(Set.of(category1, category2), captureCategories.getValue());
}
@Test
void addCommandWorksNocategories() {
var url = "http://tea.filefighter.de";
var username = "mario";
ArgumentCaptor<String> captureUrl = ArgumentCaptor.forClass(String.class);
ArgumentCaptor<String> captureUsername = ArgumentCaptor.forClass(String.class);
ArgumentCaptor<Set<String>> captureCategories = ArgumentCaptor.forClass(Set.class);
doNothing()
.when(mockAdapter)
.addLink(captureUrl.capture(), captureCategories.capture(), captureUsername.capture());
var sut = new LinkCommands(mockAdapter);
var returnValue = sut.executeSubcommand(new String[]{"add", url, username});
assertEquals("Added the new Link", returnValue);
assertEquals(url, captureUrl.getValue());
assertEquals(username, captureUsername.getValue());
assertEquals(Set.of(), captureCategories.getValue());
}
}