package com.bazaarvoice.auth.hmac.common;
import org.junit.Test;
import java.util.Arrays;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
public class CredentialsTest {
private final Credentials credentials = createCredentials();
@Test
public void hasApiKey() {
assertEquals("apiKey", credentials.getApiKey());
}
@Test
public void hasSignature() {
assertEquals("signature", credentials.getSignature());
}
@Test
public void hasPath() {
assertEquals("/path/to/something?param=pizza", credentials.getPath());
}
@Test
public void hasTimestamp() {
assertEquals("timestamp", credentials.getTimestamp());
}
@Test
public void hasContent() {
assertTrue(Arrays.equals("content".getBytes(), credentials.getContent()));
}
@Test
public void hasMethod() {
assertEquals("GET", credentials.getMethod());
}
@Test
public void hasVersion() {
assertEquals(Version.V1, credentials.getVersion());
}
@Test
@SuppressWarnings({"ObjectEqualsNull", "EqualsBetweenInconvertibleTypes"})
public void hasWorkingEqualsMethod() {
assertTrue(credentials.equals(credentials));
assertTrue(credentials.equals(createCredentials()));
assertFalse(credentials.equals(null));
assertFalse(credentials.equals("string"));
assertFalse(credentials.equals(Credentials.builder().build()));
}
@Test
public void hasWorkingHashCode() {
assertTrue(credentials.hashCode() == createCredentials().hashCode());
assertFalse(credentials.hashCode() == Credentials.builder().build().hashCode());
}
private Credentials createCredentials() {
return Credentials.builder()
.withApiKey("apiKey")
.withSignature("signature")
.withPath("/path/to/something?param=pizza")
.withTimestamp("timestamp")
.withContent("content".getBytes())
.withMethod("GET")
.withVersion(Version.V1)
.build();
}
}