diff --git a/FlashCards_Client/src/main/java/org/robbins/flashcards/client/DefaultFlashcardClient.java b/FlashCards_Client/src/main/java/org/robbins/flashcards/client/DefaultFlashcardClient.java index ababc2375..0c2a45596 100644 --- a/FlashCards_Client/src/main/java/org/robbins/flashcards/client/DefaultFlashcardClient.java +++ b/FlashCards_Client/src/main/java/org/robbins/flashcards/client/DefaultFlashcardClient.java @@ -127,6 +127,6 @@ public FlashCardDto findByQuestion(final String question) throws ServiceExceptio public List findFlashcardsForTag(Long tagId, Set fields) throws FlashcardsException { Map uriVariables = new HashMap(); uriVariables.put("tagId", String.valueOf(tagId)); - return Arrays.asList(searchEntities(getEntityListUrl(), uriVariables, FlashCardDto[].class)); + return Arrays.asList(searchEntities(getServerAddress() + ResourceUrls.flashcardsForTag, uriVariables, FlashCardDto[].class)); } } diff --git a/FlashCards_Client/src/main/java/org/robbins/flashcards/client/DefaultTagClient.java b/FlashCards_Client/src/main/java/org/robbins/flashcards/client/DefaultTagClient.java index 96de9f95c..545c270b5 100644 --- a/FlashCards_Client/src/main/java/org/robbins/flashcards/client/DefaultTagClient.java +++ b/FlashCards_Client/src/main/java/org/robbins/flashcards/client/DefaultTagClient.java @@ -2,7 +2,6 @@ import org.robbins.flashcards.client.util.ResourceUrls; import org.robbins.flashcards.dto.TagDto; -import org.robbins.flashcards.exceptions.FlashcardsException; import org.robbins.flashcards.exceptions.ServiceException; import org.springframework.stereotype.Component; @@ -65,6 +64,6 @@ public TagDto findByName(final String name) throws ServiceException { public List findTagsForFlashcard(final Long flashcardId, final Set fields) { Map uriVariables = new HashMap(); uriVariables.put("flashcardId", String.valueOf(flashcardId)); - return Arrays.asList(searchEntities(getEntityListUrl(), uriVariables, TagDto[].class)); + return Arrays.asList(searchEntities(getServerAddress() + ResourceUrls.tagsForFlashcard, uriVariables, TagDto[].class)); } } diff --git a/FlashCards_Client/src/main/java/org/robbins/flashcards/client/util/ResourceUrls.java b/FlashCards_Client/src/main/java/org/robbins/flashcards/client/util/ResourceUrls.java index 985ef9e1c..5a56f32a6 100644 --- a/FlashCards_Client/src/main/java/org/robbins/flashcards/client/util/ResourceUrls.java +++ b/FlashCards_Client/src/main/java/org/robbins/flashcards/client/util/ResourceUrls.java @@ -31,4 +31,8 @@ private ResourceUrls() { public static final String userUpdate = "v1/users/{id}/update"; public static final String status = "status/"; + + public static final String tagsForFlashcard = "v1/flashcards/{flashcardId}/tags"; + + public static final String flashcardsForTag = "v1/tags/{tagId}/flashcards"; } diff --git a/FlashCards_WebServices/src/test/java/org/robbins/flashcards/webservices/FlashCardsResourceIT.java b/FlashCards_WebServices/src/test/java/org/robbins/flashcards/webservices/FlashCardsResourceIT.java index 0934f9ce7..db9fea6a3 100644 --- a/FlashCards_WebServices/src/test/java/org/robbins/flashcards/webservices/FlashCardsResourceIT.java +++ b/FlashCards_WebServices/src/test/java/org/robbins/flashcards/webservices/FlashCardsResourceIT.java @@ -12,10 +12,12 @@ import javax.inject.Inject; +import com.google.common.collect.Sets; import org.junit.Test; import org.junit.experimental.categories.Category; import org.robbins.flashcards.client.FlashcardClient; import org.robbins.flashcards.client.GenericRestCrudFacade; +import org.robbins.flashcards.client.TagClient; import org.robbins.flashcards.dto.FlashCardDto; import org.robbins.flashcards.dto.TagDto; import org.robbins.flashcards.exceptions.FlashcardsException; @@ -46,6 +48,9 @@ public FlashCardDto getEntity() { @Inject private FlashcardClient client; + @Inject + private TagClient tagClient; + @Override public GenericRestCrudFacade getClient() { return client; @@ -103,4 +108,26 @@ public void createNewFlashCard_WithNewTag() throws FlashcardsException { client.delete(newFlashCard.getId()); } + + @Test + public void testFindFlashcardsForTag() throws FlashcardsException { + FlashCardDto flashCard = setupFlashcard(); + + List results = client.findFlashcardsForTag(flashCard.getTags().iterator().next().getId(), null); + assertTrue(results != null); + assertTrue(results.size() == 1); + + cleanupFlashcard(flashCard); + } + + private FlashCardDto setupFlashcard() throws FlashcardsException { + FlashCardDto flashCardDto = TestDtoGenerator.createFlashCardDto("question", "answer"); + flashCardDto.setTags(Sets.newHashSet(new TagDto("tag_name"))); + return client.save(flashCardDto); + } + + private void cleanupFlashcard(FlashCardDto flashCard) { + client.delete(flashCard.getId()); + tagClient.delete(flashCard.getTags().iterator().next().getId()); + } } diff --git a/FlashCards_WebServices/src/test/java/org/robbins/flashcards/webservices/TagsResourceIT.java b/FlashCards_WebServices/src/test/java/org/robbins/flashcards/webservices/TagsResourceIT.java index 80343cbd8..dcb0996fc 100644 --- a/FlashCards_WebServices/src/test/java/org/robbins/flashcards/webservices/TagsResourceIT.java +++ b/FlashCards_WebServices/src/test/java/org/robbins/flashcards/webservices/TagsResourceIT.java @@ -6,10 +6,13 @@ import javax.inject.Inject; +import com.google.common.collect.Sets; import org.junit.Test; import org.junit.experimental.categories.Category; +import org.robbins.flashcards.client.FlashcardClient; import org.robbins.flashcards.client.GenericRestCrudFacade; import org.robbins.flashcards.client.TagClient; +import org.robbins.flashcards.dto.FlashCardDto; import org.robbins.flashcards.dto.TagDto; import org.robbins.flashcards.exceptions.FlashcardsException; import org.robbins.flashcards.tests.webservices.GenericEntityRestTest; @@ -17,6 +20,9 @@ import org.robbins.tests.IntegrationTest; import org.springframework.test.context.ContextConfiguration; +import java.util.HashSet; +import java.util.List; + @Category(IntegrationTest.class) @ContextConfiguration(locations = {"classpath*:applicatonContext-client.xml"}) public class TagsResourceIT extends GenericEntityRestTest { @@ -29,6 +35,9 @@ public class TagsResourceIT extends GenericEntityRestTest { @Inject private TagClient client; + @Inject + private FlashcardClient flashcardClient; + @Override public GenericRestCrudFacade getClient() { return client; @@ -44,9 +53,6 @@ public TagDto getEntity() { return this.entity; } - /** - * Test search by facility in. - */ @Test public void testSearchByName() throws FlashcardsException { @@ -57,9 +63,6 @@ public void testSearchByName() throws FlashcardsException assertEquals(searchResult.getName(), TAG_NAME); } - /** - * Execute updateEntity. - */ @Test public void testUpdateEntity() throws FlashcardsException { final Long id = getEntity().getId(); @@ -74,4 +77,35 @@ public void testUpdateEntity() throws FlashcardsException { final TagDto retrievedEntity = client.findOne(id); assertEquals(UPDATED_VALUE, retrievedEntity.getName()); } + + @Test + public void testFindByCreatedBy() throws FlashcardsException { + final Long userId = 4L; + List results = client.findByCreatedBy(userId, null); + + assertTrue(results != null); + assertTrue(results.size() > 0); + } + + @Test + public void testFindTagsForFlashcard() throws FlashcardsException { + FlashCardDto flashCard = setupFlashcard(); + + List results = client.findTagsForFlashcard(flashCard.getId(), null); + assertTrue(results != null); + assertTrue(results.size() == 1); + + cleanupFlashcard(flashCard); + } + + private FlashCardDto setupFlashcard() throws FlashcardsException { + FlashCardDto flashCardDto = TestDtoGenerator.createFlashCardDto("question", "answer"); + flashCardDto.setTags(Sets.newHashSet(new TagDto("tag_name"))); + return flashcardClient.save(flashCardDto); + } + + private void cleanupFlashcard(FlashCardDto flashCard) { + flashcardClient.delete(flashCard.getId()); + client.delete(flashCard.getTags().iterator().next().getId()); + } }