@Test public void test_add_customer_shipping_to_customer() throws JsonParseException, JsonMappingException, IOException { Client client = JerseyClientBuilder.createClient(); HttpAuthenticationFeature feature = HttpAuthenticationFeature.basic("*****@*****.**", "password"); client.register(feature); // CREATE NEW USER Customer customer = new Customer(); customer.setUsername("*****@*****.**"); customer.setPassword("password"); Customer customerPersisted = client .target(String.format(REST_PRODUCT_SERVICE_URL, RULE.getLocalPort())) .path(new StringBuilder("/customer").append("/signup").toString()) .request(MediaType.APPLICATION_JSON) .post(Entity.json(customer), Customer.class); assertThat(customerPersisted.getId()).isNotNull(); // ADD CCHAT TO USER CChat cchat = new CChat("Usman-Asifa"); CChat persistedCchat = client .target(String.format(REST_PRODUCT_SERVICE_URL, RULE.getLocalPort())) .path( new StringBuilder("/customer/") .append(customerPersisted.getId()) .append("/cchat") .toString()) .request(MediaType.APPLICATION_JSON) .post(Entity.json(cchat), CChat.class); assertThat(persistedCchat.getId()).isNotNull(); // assertThat(persistedCchat.getUniqueName()).isEqualTo("Usman-Asifa"); // ADD CCHAT1 TO USER CChat cchat1 = new CChat("Usman-Gulgs"); CChat persistedCchat1 = client .target(String.format(REST_PRODUCT_SERVICE_URL, RULE.getLocalPort())) .path( new StringBuilder("/customer/") .append(customerPersisted.getId()) .append("/cchat") .toString()) .request(MediaType.APPLICATION_JSON) .post(Entity.json(cchat1), CChat.class); assertThat(persistedCchat1.getId()).isNotNull(); // assertThat(persistedCchat1.getUniqueName()).isEqualTo("Usman-Gulgs"); // ADD CUSTOMERSHIPPING TO USER CustomerShipping customerShipping = new CustomerShipping( "Usman", "Chaudhri", "2460 Fulton", "San Francisco", "CA", "94118", "USA", "Y"); CustomerShipping persistedCustomerShipping = client .target(String.format(REST_PRODUCT_SERVICE_URL, RULE.getLocalPort())) .path( new StringBuilder("/customer/") .append(customerPersisted.getId()) .append("/customershipping") .toString()) .request(MediaType.APPLICATION_JSON) .post(Entity.json(customerShipping), CustomerShipping.class); assertThat(persistedCustomerShipping.getId()).isNotNull(); assertThat(persistedCustomerShipping.getFirstName()).isEqualTo("Usman"); assertThat(persistedCustomerShipping.getLastName()).isEqualTo("Chaudhri"); // ADD ORDER TO USER Order orderRequest = new Order(); orderRequest.setProductId("101"); orderRequest.setProductCategoryId("10"); orderRequest.setProductImagePath("/image/listing"); orderRequest.setProductName("shirt"); orderRequest.setProductPrice("10.99"); orderRequest.setProductQuantity("5"); orderRequest.setProductShopId("40"); orderRequest.setProductSku("SKU_101"); orderRequest.setStatus("Processed"); Order persistedOrder = client .target(String.format(REST_PRODUCT_SERVICE_URL, RULE.getLocalPort())) .path(new StringBuilder("/orders").toString()) .request(MediaType.APPLICATION_JSON) .post(Entity.json(orderRequest), Order.class); assertThat(persistedOrder.getId()).isNotNull(); // GET PERSISTED CUSTOMER Customer getPersistedCustomer = client .target(String.format(REST_PRODUCT_SERVICE_URL, RULE.getLocalPort())) .path(new StringBuilder("/customer").append("/login").toString()) .request(MediaType.APPLICATION_JSON) .get(Customer.class); assertThat(getPersistedCustomer.getId()).isNotNull(); assertThat(getPersistedCustomer.getCustomerShipping().get(0).getId()).isNotNull(); assertThat(getPersistedCustomer.getCustomerShipping().get(0).getFirstName()).isNotNull(); // lazy load cchat JsonNode getPersistedCustomerCchat = client .target(String.format(REST_PRODUCT_SERVICE_URL, RULE.getLocalPort())) .path( new StringBuilder("/customer/") .append(getPersistedCustomer.getId()) .append("/cchat") .toString()) .request(MediaType.APPLICATION_JSON) .get(JsonNode.class); ObjectMapper mapper = new ObjectMapper(); List<CChat> getPersistedCChats = mapper.readValue( mapper.treeAsTokens(getPersistedCustomerCchat), new TypeReference<List<CChat>>() {}); assertThat(getPersistedCChats.get(0).getId()).isNotNull(); assertThat(getPersistedCChats.get(1).getId()).isNotNull(); }