package org.multibit.mbm.client.handlers.item; import com.google.common.base.Optional; import org.junit.Test; import org.multibit.mbm.client.PublicMerchantClient; import org.multibit.mbm.client.handlers.BaseHandlerTest; import org.multibit.mbm.model.ClientItem; import org.multibit.mbm.test.FixtureAsserts; import java.net.URI; import static junit.framework.Assert.assertEquals; import static junit.framework.Assert.assertTrue; import static org.mockito.Mockito.when; public class ClientItemHandlerTest extends BaseHandlerTest { @Test public void retrieveBySku() throws Exception { // Arrange URI expectedUri = URI.create("http://localhost:8080/mbm/items/0575088893"); // Test-specific JerseyClient behaviour when(client.resource(expectedUri)).thenReturn(webResource); when(webResource.get(String.class)) .thenReturn( FixtureAsserts.fixture("/fixtures/hal/item/expected-customer-retrieve-item.json")); // Act Optional<ClientItem> optionalItem = PublicMerchantClient .newInstance(locale) .item() .retrieveBySku("0575088893"); // Assert assertTrue(optionalItem.isPresent()); ClientItem actualItem = optionalItem.get(); assertEquals("0575088893",actualItem.getSKU()); assertEquals("The Quantum Thief",actualItem.getOptionalProperties().get("title")); } }