package net.sf.gazpachoquest.cxf.interceptor; import java.util.Collections; import net.sf.gazpachoquest.api.AuthenticationResource; import net.sf.gazpachoquest.api.QuestionnaireResource; import net.sf.gazpachoquest.dto.QuestionnaireDefinitionDTO; import net.sf.gazpachoquest.dto.QuestionnairePageDTO; import net.sf.gazpachoquest.dto.answers.Answer; import net.sf.gazpachoquest.dto.answers.TextAnswer; import net.sf.gazpachoquest.dto.auth.Account; import net.sf.gazpachoquest.types.Language; import net.sf.gazpachoquest.types.NavigationAction; import net.sf.gazpachoquest.types.RenderingMode; import org.apache.cxf.jaxrs.client.Client; import org.apache.cxf.jaxrs.client.ClientConfiguration; import org.apache.cxf.jaxrs.client.JAXRSClientFactory; import org.apache.cxf.jaxrs.client.WebClient; import org.junit.Ignore; import org.junit.Test; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializationFeature; import com.fasterxml.jackson.datatype.jsr310.JSR310Module; import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider; @Ignore public class ClientInterceptorTest { // public static final String BASE_URI = // "http://gazpachoquest.rest.antoniomaria.eu.cloudbees.net/api"; public static final String BASE_URI = "http://localhost:8080/gazpachoquest-rest-web/api"; @Test public void authenticateTest() { AuthenticationResource authenticationResource = JAXRSClientFactory.create(BASE_URI, AuthenticationResource.class, Collections.singletonList(new JacksonJsonProvider()), null); Client client = WebClient.client(authenticationResource); Account account = authenticationResource.authenticate("YAS5ICHRBE"); } @Test public void getDefinitionTest() { QuestionnaireResource questionnaireResource = getQuestionnaireResource(); Integer questionnaireId = 61; QuestionnaireDefinitionDTO definition = questionnaireResource.getDefinition(questionnaireId); } @Test public void getPageTest() { QuestionnaireResource questionnaireResource = getQuestionnaireResource(); Integer questionnaireId = 103; QuestionnairePageDTO definition = questionnaireResource.getPage(questionnaireId, RenderingMode.ALL_IN_ONE, Language.EN, NavigationAction.ENTERING); } @Test public void saveAnswerTest() { QuestionnaireResource questionnaireResource = getQuestionnaireResource(); Answer answer = new TextAnswer("Antonio Maria"); Integer questionnaireId = 11; String questionCode = "Q1"; questionnaireResource.saveAnswer(answer, questionnaireId, questionCode); } private QuestionnaireResource getQuestionnaireResource() { QuestionnaireResource questionnaireResource = JAXRSClientFactory.create(BASE_URI, QuestionnaireResource.class, Collections.singletonList(getJacksonProvider()), null); Client client = WebClient.client(questionnaireResource); ClientConfiguration config = WebClient.getConfig(client); String apiKey = "FGFQM8T6YPVSW4Q"; String secret = "39JYOYPWYR46R38OAOTVRZJMEXNJ46HL"; config.getOutInterceptors().add(new HmacAuthInterceptor(apiKey, secret)); return questionnaireResource; } private JacksonJsonProvider getJacksonProvider() { JacksonJsonProvider jacksonProvider = new JacksonJsonProvider(); ObjectMapper mapper = new ObjectMapper(); mapper.registerModule(new JSR310Module()); mapper.setSerializationInclusion(Include.NON_EMPTY); mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false); jacksonProvider.setMapper(mapper); return jacksonProvider; } }