package org.datatransferproject.types.transfer.auth; import static org.junit.Assert.*; import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.collect.Lists; import java.io.IOException; import java.util.ArrayList; import org.junit.Before; import org.junit.Test; public class AuthDataSerializationTest { private ObjectMapper objectMapper; @Before public void setUp() { objectMapper = new ObjectMapper(); objectMapper.registerSubtypes( CookiesAndUrlAuthData.class, TokenAuthData.class, TokensAndUrlAuthData.class, TokenSecretAuthData.class); } @Test public void verifyCookiesAndUrlAuthData() throws IOException { final ArrayList<String> cookies = Lists.newArrayList("cookie_1", "cookie_2"); final String url = "https://www.example.com/auth"; final CookiesAndUrlAuthData authData = new CookiesAndUrlAuthData(cookies, url); final String s = objectMapper.writeValueAsString(authData); final AuthData readValue = objectMapper.readValue(s, AuthData.class); assertTrue( "The read AuthData should be an instance of CookiesAndUrlAuthData", readValue instanceof CookiesAndUrlAuthData); final CookiesAndUrlAuthData readAuthData = (CookiesAndUrlAuthData) readValue; assertEquals("Expect cookies to be the same", cookies, readAuthData.getCookies()); assertEquals("Expect url to be the same", url, readAuthData.getUrl()); } @Test public void verifyTokenAuthData() throws IOException { final String token = "my_secret_token"; final TokenAuthData authData = new TokenAuthData(token); final String s = objectMapper.writeValueAsString(authData); final AuthData readValue = objectMapper.readValue(s, AuthData.class); assertTrue( "The read AuthData should be an instance of TokenAuthData", readValue instanceof TokenAuthData); final TokenAuthData readAuthData = (TokenAuthData) readValue; assertEquals("Expect token to be the same", token, readAuthData.getToken()); } @Test public void verifyTokensAndUrlAuthData() throws IOException { final String accessToken = "my_access_token"; final String refreshToken = "my_refresh_token"; final String url = "https://www.example.com/auth"; final TokensAndUrlAuthData authData = new TokensAndUrlAuthData(accessToken, refreshToken, url); final String s = objectMapper.writeValueAsString(authData); final AuthData readValue = objectMapper.readValue(s, AuthData.class); assertTrue( "The read AuthData should be an instance of TokenAuthData", readValue instanceof TokensAndUrlAuthData); final TokensAndUrlAuthData readAuthData = (TokensAndUrlAuthData) readValue; assertEquals("Expect access token to be the same", accessToken, readAuthData.getAccessToken()); assertEquals( "Expect refresh token to be the same", refreshToken, readAuthData.getRefreshToken()); assertEquals("Expect url to be the same", url, readAuthData.getTokenServerEncodedUrl()); } @Test public void verifyTokenSecretAuthData() throws IOException { final String token = "my_secret_token"; final String secret = "my_secret"; final TokenSecretAuthData authData = new TokenSecretAuthData(token, secret); final String s = objectMapper.writeValueAsString(authData); final AuthData readValue = objectMapper.readValue(s, AuthData.class); assertTrue( "The read AuthData should be an instance of TokenAuthData", readValue instanceof TokenSecretAuthData); final TokenSecretAuthData readAuthData = (TokenSecretAuthData) readValue; assertEquals("Expect token to be the same", token, readAuthData.getToken()); assertEquals("Expect secret to be the same", secret, readAuthData.getSecret()); } }