package org.multibit.mbm.client.handlers.user; import com.google.common.base.Optional; import org.junit.Test; import org.multibit.mbm.auth.webform.WebFormClientRegistration; import org.multibit.mbm.client.PublicMerchantClient; import org.multibit.mbm.client.handlers.BaseHandlerTest; import org.multibit.mbm.model.ClientUser; 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 PublicUserHandlerTest extends BaseHandlerTest { @Test public void registerWithWebForm() throws Exception { // Arrange URI expectedUri = URI.create("http://localhost:8080/mbm/client/user/register"); // Test-specific JerseyClient behaviour when(client.resource(expectedUri)).thenReturn(webResource); when(builder.post(String.class)).thenReturn( FixtureAsserts.jsonFixture("/fixtures/hal/user/expected-client-register-customer-user.json") ); WebFormClientRegistration registration = new WebFormClientRegistration( "bob", "bob1" ); // Act Optional<ClientUser> publicUser = PublicMerchantClient .newInstance(locale) .user() .registerWithWebForm(registration); // Assert assertTrue("Expected user", publicUser.isPresent()); assertEquals("bob123",publicUser.get().getApiKey()); assertEquals("bob456",publicUser.get().getSecretKey()); } @Test public void registerAnonymously() throws Exception { // Arrange URI expectedUri = URI.create("http://localhost:8080/mbm/client/user/anonymous"); // Test-specific JerseyClient behaviour when(client.resource(expectedUri)).thenReturn(webResource); // No entity so use resource not builder when(webResource.post(String.class)).thenReturn( FixtureAsserts.jsonFixture("/fixtures/hal/user/expected-client-register-anonymous-user.json") ); // Act Optional<ClientUser> publicUser = PublicMerchantClient .newInstance(locale) .user() .registerAnonymously(); // Assert assertTrue("Expected user", publicUser.isPresent()); assertEquals("bob123",publicUser.get().getApiKey()); assertEquals("bob456",publicUser.get().getSecretKey()); } }