public void documentFetchIdCards()

in component-test/src/main/java/org/apache/fineract/cn/customer/IdentificationApiDocumentation.java [80:164]


  public void documentFetchIdCards ( ) throws Exception {
    final String customerIdentifier = this.createCustomer();

    IdentificationCard NiDCard = IdentificationCardGenerator.createRandomIdentificationCard();

    ExpirationDate exp = new ExpirationDate();
    exp.setYear(2028);
    exp.setMonth(5);
    exp.setDay(23);

    NiDCard.setType("National");
    NiDCard.setNumber("07235388");
    NiDCard.setExpirationDate(exp);
    NiDCard.setIssuer("NDNS");
    NiDCard.setCreatedBy("Nakuve L.");
    NiDCard.setCreatedOn("2018/5/23");
    NiDCard.setLastModifiedBy("Chi Tih");
    NiDCard.setLastModifiedOn(LocalDate.now().toString());

    IdentificationCard SchoolId = IdentificationCardGenerator.createRandomIdentificationCard();

    ExpirationDate ex = new ExpirationDate();
    ex.setYear(2019);
    ex.setMonth(10);
    ex.setDay(7);

    SchoolId.setType("University");
    SchoolId.setNumber("SC10A123");
    SchoolId.setExpirationDate(ex);
    SchoolId.setIssuer("UB");
    SchoolId.setCreatedBy("Ndip Ndip");
    SchoolId.setCreatedOn("2010/12/10");
    SchoolId.setLastModifiedBy("Chi Tih");
    SchoolId.setLastModifiedOn(LocalDate.now().toString());

    Stream.of(NiDCard, SchoolId)
            .forEach(identificationCard -> {
              this.customerManager.createIdentificationCard(customerIdentifier, identificationCard);
              try {
                this.eventRecorder.wait(CustomerEventConstants.POST_IDENTIFICATION_CARD, identificationCard.getNumber());
              } catch (final InterruptedException exception) {
                Assert.fail(exception.getMessage());
              }
            });

    final List <IdentificationCard> cards = this.customerManager.fetchIdentificationCards(customerIdentifier);
    System.out.println("Number of cards is " + cards.size());
    Assert.assertTrue(cards.size() == 2);

    this.mockMvc.perform(get("/customers/" + customerIdentifier + "/identifications")
            .contentType(MediaType.APPLICATION_JSON_VALUE)
            .accept(MediaType.ALL_VALUE))
            .andExpect(status().isOk())
            .andDo(document("document-fetch-id-cards", preprocessRequest(prettyPrint()),
                    preprocessResponse(prettyPrint()),
                    responseFields(
                            fieldWithPath("[].type").description("type of first card"),
                            fieldWithPath("[].number").description("Number on first card"),
                            fieldWithPath("[].expirationDate").type("ExpirationDate").description("expiry date of first card +\n" +
                                    " +\n" +
                                    " *class* _ExpirationDate_ { +\n" +
                                    "    *Integer* year, +\n" +
                                    "    *Integer* month, +\n" +
                                    "    *Integer* day, +\n" +
                                    "} +"),
                            fieldWithPath("[].issuer").description("issuer of first card"),
                            fieldWithPath("[].createdBy").description("creator of first card"),
                            fieldWithPath("[].createdOn").description("date of creation of first card "),
                            fieldWithPath("[].lastModifiedBy").type("String").description("employee who last modified first card"),
                            fieldWithPath("[].lastModifiedOn").type("String").description("date when first card was lastly modified"),
                            fieldWithPath("[1].type").description("type of second card"),
                            fieldWithPath("[1].number").description("Number of second card"),
                            fieldWithPath("[1].expirationDate").type("ExpirationDate").description("expiry date of second card +\n" +
                                    " +\n" +
                                    " *class* _ExpirationDate_ { +\n" +
                                    "    *Integer* year, +\n" +
                                    "    *Integer* month, +\n" +
                                    "    *Integer* day, +\n" +
                                    "} +"),
                            fieldWithPath("[1].issuer").description("issuer of second card"),
                            fieldWithPath("[1].createdBy").description("creator of second card"),
                            fieldWithPath("[1].createdOn").description("date of creation of second card"),
                            fieldWithPath("[1].lastModifiedBy").type("String").description("employee who last modified second card"),
                            fieldWithPath("[1].lastModifiedOn").type("String").description("date when second cards was lastly modified"))));
  }