@Test(groups = {"webservice"})
  public void testSubmitReportMandatoryFieldsMissing() throws IOException {
    HttpClient client = new HttpClient();
    client.createContext();
    Report reportFromJson = JsonUtility.readObjectFromFile(FULL_JSON_TXT_FILE_NAME, Report.class);
    reportFromJson.setAgentCode("V10");

    ResponseEntity responseEntity =
        client.SendJSON(
            getJsonStringFor(reportFromJson),
            "http://localhost:9091/rest-api/requisitions.json",
            POST,
            "commTrack",
            "Admin123");

    assertEquals(400, responseEntity.getStatus());
    assertEquals("{\"error\":\"Missing mandatory fields\"}", responseEntity.getResponse());

    reportFromJson = JsonUtility.readObjectFromFile(FULL_JSON_TXT_FILE_NAME, Report.class);
    reportFromJson.setProgramCode("HIV");

    responseEntity =
        client.SendJSON(
            getJsonStringFor(reportFromJson),
            "http://localhost:9091/rest-api/requisitions.json",
            POST,
            "commTrack",
            "Admin123");

    assertEquals(400, responseEntity.getStatus());
    assertEquals("{\"error\":\"Missing mandatory fields\"}", responseEntity.getResponse());
  }
 @BeforeMethod(groups = {"webservice", "webserviceSmoke"})
 public void setUp() throws InterruptedException, SQLException, IOException {
   super.setup();
   super.setupTestData(false);
   createVirtualFacilityThroughApi("V10", "F10");
   dbWrapper.insertProcessingPeriod(
       "current", "current period", "2013-01-30", "2016-01-30", 1, "M");
   dbWrapper.insertRoleAssignmentForSupervisoryNodeForProgramId1("700", "store in-charge", "N1");
   dbWrapper.updateRestrictLogin("commTrack", true);
 }
  @Test(groups = {"webservice"})
  public void testMasterTemplateValidationMissingBothMandatoryUserInputFields()
      throws SQLException, IOException {
    HttpClient client = new HttpClient();
    client.createContext();
    dbWrapper.updateConfigureTemplate("HIV", "source", "U", "true", "stockInHand");
    dbWrapper.updateConfigureTemplate("HIV", "source", "U", "true", "quantityDispensed");
    Report reportFromJson =
        JsonUtility.readObjectFromFile(MINIMUM_JSON_TXT_FILE_NAME, Report.class);
    reportFromJson.setAgentCode("V10");
    reportFromJson.setProgramCode("HIV");
    reportFromJson.getProducts().get(0).setProductCode("P10");
    reportFromJson.getProducts().get(0).setBeginningBalance(1);
    reportFromJson.getProducts().get(0).setQuantityReceived(4);
    reportFromJson.getProducts().get(0).setQuantityDispensed(null);
    reportFromJson.getProducts().get(0).setStockInHand(null);
    ResponseEntity responseEntity =
        client.SendJSON(
            getJsonStringFor(reportFromJson),
            "http://localhost:9091/rest-api/requisitions.json",
            POST,
            "commTrack",
            "Admin123");

    assertEquals(400, responseEntity.getStatus());
    assertEquals(
        "{\"error\":\"R&R has errors, please correct them to proceed.\"}",
        responseEntity.getResponse());
  }
  @Test(groups = {"webservice"})
  public void testMultipleSubmitReportForParentFacility() throws SQLException, IOException {
    dbWrapper.updateProgramsSupportedByField("startDate", "NOW()", "F10");
    HttpClient client = new HttpClient();
    client.createContext();

    Report reportFromJson = JsonUtility.readObjectFromFile(FULL_JSON_TXT_FILE_NAME, Report.class);
    reportFromJson.setAgentCode("F10");
    reportFromJson.setProgramCode("HIV");
    reportFromJson.getProducts().get(0).setProductCode("P10");

    ResponseEntity responseEntity =
        client.SendJSON(
            getJsonStringFor(reportFromJson),
            "http://localhost:9091/rest-api/requisitions.json",
            POST,
            "commTrack",
            "Admin123");

    assertEquals(201, responseEntity.getStatus());
    assertTrue(responseEntity.getResponse().contains("{\"requisitionId\":"));

    responseEntity =
        client.SendJSON(
            getJsonStringFor(reportFromJson),
            "http://localhost:9091/rest-api/requisitions.json",
            POST,
            "commTrack",
            "Admin123");
    assertEquals(400, responseEntity.getStatus());
    assertEquals("{\"error\":\"Program configuration missing\"}", responseEntity.getResponse());
  }
  @Test(groups = {"webservice"})
  public void testInitiateRnrWhenProgramStartDateIsAfterCurrentDateAndInCurrentPeriod()
      throws SQLException, IOException {
    dbWrapper.updateProgramsSupportedByField("startDate", "2015-01-01", "V10");
    HttpClient client = new HttpClient();
    client.createContext();
    Report reportFromJson =
        JsonUtility.readObjectFromFile(PRODUCT_JSON_TXT_FILE_NAME, Report.class);
    reportFromJson.setAgentCode("V10");
    reportFromJson.setProgramCode("HIV");
    reportFromJson.getProducts().get(0).setProductCode("P10");
    reportFromJson.getProducts().get(0).setBeginningBalance(1);
    reportFromJson.getProducts().get(0).setQuantityDispensed(1);
    reportFromJson.getProducts().get(0).setQuantityReceived(4);
    reportFromJson.getProducts().get(0).setStockInHand(4);

    ResponseEntity responseEntity =
        client.SendJSON(
            getJsonStringFor(reportFromJson),
            "http://localhost:9091/rest-api/requisitions.json",
            POST,
            "commTrack",
            "Admin123");

    assertEquals(201, responseEntity.getStatus());
    assertTrue(responseEntity.getResponse().contains("{\"requisitionId\":"));
  }
  @Test(groups = {"webserviceSmoke"})
  public void testRequisitionStatusUsingCommTrackUserForExportOrderFlagFalse()
      throws IOException, SQLException, ParserConfigurationException, SAXException {
    HttpClient client = new HttpClient();
    client.createContext();
    submitRnRThroughApi("V10", "HIV", "P10", 1, 10, 1, 0, 0, 2);
    Long id = (long) dbWrapper.getMaxRnrID();

    ResponseEntity responseEntity = client.SendJSON("", URL + "recent", "GET", "", "");
    assertEquals(200, responseEntity.getStatus());
    assertEquals(StringUtils.countMatches(responseEntity.getResponse(), ":"), 41);
    List<String> feedJSONList = XmlUtils.getNodeValues(responseEntity.getResponse(), "content");
    checkRequisitionStatusOnFeed("INITIATED", feedJSONList.get(0), id);
    checkRequisitionStatusOnFeed("SUBMITTED", feedJSONList.get(1), id);
    checkRequisitionStatusOnFeed("AUTHORIZED", feedJSONList.get(2), id);

    dbWrapper.setExportOrdersFlagInSupplyLinesTable(false, "F10");

    approveRequisition(id, 65);
    dbWrapper.updateRestrictLogin("commTrack", false);
    convertToOrder("commTrack", "Admin123");
    dbWrapper.updateRestrictLogin("commTrack", true);
    responseEntity = client.SendJSON("", URL + "1", "GET", "", "");
    assertEquals(200, responseEntity.getStatus());

    feedJSONList = XmlUtils.getNodeValues(responseEntity.getResponse(), "content");
    checkRequisitionStatusOnFeed("APPROVED", feedJSONList.get(3), id);
    checkRequisitionStatusOnFeed("RELEASED", feedJSONList.get(4), id);

    responseEntity = client.SendJSON("", URL + "recent", "GET", "", "");
    assertEquals(200, responseEntity.getStatus());
    feedJSONList = XmlUtils.getNodeValues(responseEntity.getResponse(), "content");
    checkOrderStatusOnFeed("READY_TO_PACK", feedJSONList.get(0), id);

    dbWrapper.assignRight("store in-charge", "MANAGE_POD");

    OrderPOD OrderPODFromJson =
        JsonUtility.readObjectFromFile(FULL_JSON_POD_TXT_FILE_NAME, OrderPOD.class);
    OrderPODFromJson.getPodLineItems().get(0).setQuantityReceived(65);
    OrderPODFromJson.getPodLineItems().get(0).setProductCode("P10");

    client.SendJSON(
        getJsonStringFor(OrderPODFromJson), format(POD_URL, id), "POST", "commTrack", "Admin123");

    responseEntity = client.SendJSON("", URL + "recent", "GET", "", "");
    assertEquals(200, responseEntity.getStatus());
    feedJSONList = XmlUtils.getNodeValues(responseEntity.getResponse(), "content");
    checkOrderStatusOnFeed("RECEIVED", feedJSONList.get(1), id);
  }
  @Test(groups = {"webserviceSmoke"})
  public void shouldReturn401StatusWhenSubmittingReportWithInvalidAPIUser() throws IOException {
    HttpClient client = new HttpClient();
    client.createContext();

    Report reportFromJson =
        JsonUtility.readObjectFromFile(MINIMUM_JSON_TXT_FILE_NAME, Report.class);
    reportFromJson.setAgentCode("V10");
    reportFromJson.setProgramCode("HIV");

    ResponseEntity responseEntity =
        client.SendJSON(
            getJsonStringFor(reportFromJson),
            "http://localhost:9091/rest-api/requisitions.json",
            POST,
            "commTrack1000",
            "Admin123");

    assertEquals(401, responseEntity.getStatus());
  }
  @Test(groups = {"webservice"})
  public void testSubmitReportWhenParentFacilityInactive() throws SQLException, IOException {
    dbWrapper.updateFieldValue("facilities", "active", "false", "code", "V10");
    HttpClient client = new HttpClient();
    client.createContext();
    Report reportFromJson = JsonUtility.readObjectFromFile(FULL_JSON_TXT_FILE_NAME, Report.class);
    reportFromJson.setAgentCode("V10");
    reportFromJson.setProgramCode("HIV");

    ResponseEntity responseEntity =
        client.SendJSON(
            getJsonStringFor(reportFromJson),
            "http://localhost:9091/rest-api/requisitions.json",
            POST,
            "commTrack",
            "Admin123");

    assertEquals(400, responseEntity.getStatus());
    assertEquals("{\"error\":\"Facility is inoperative\"}", responseEntity.getResponse());
  }
  @Test(groups = {"webservice"})
  public void testProductNotAvailableAtFacilitySubmitReport() throws SQLException, IOException {
    dbWrapper.deleteProductAvailableAtFacility("P10", "HIV", "V10");
    HttpClient client = new HttpClient();
    client.createContext();

    Report reportFromJson = JsonUtility.readObjectFromFile(FULL_JSON_TXT_FILE_NAME, Report.class);
    reportFromJson.setAgentCode("V10");
    reportFromJson.setProgramCode("HIV");
    reportFromJson.getProducts().get(0).setProductCode("P10");

    ResponseEntity responseEntity =
        client.SendJSON(
            getJsonStringFor(reportFromJson),
            "http://localhost:9091/rest-api/requisitions.json",
            POST,
            "commTrack",
            "Admin123");

    assertEquals(400, responseEntity.getStatus());
    assertEquals("{\"error\":\"Invalid product codes [P10]\"}", responseEntity.getResponse());
  }
  @Test(groups = {"webservice"})
  public void testInitiateRnrWhenCurrentPeriodNotDefined() throws IOException, SQLException {
    dbWrapper.deleteCurrentPeriod();
    HttpClient client = new HttpClient();
    client.createContext();
    Report reportFromJson =
        JsonUtility.readObjectFromFile(PRODUCT_JSON_TXT_FILE_NAME, Report.class);
    reportFromJson.setAgentCode("V10");
    reportFromJson.setProgramCode("HIV");
    reportFromJson.getProducts().get(0).setProductCode("P10");

    ResponseEntity responseEntity =
        client.SendJSON(
            getJsonStringFor(reportFromJson),
            "http://localhost:9091/rest-api/requisitions.json",
            POST,
            "commTrack",
            "Admin123");

    assertEquals(400, responseEntity.getStatus());
    assertEquals(responseEntity.getResponse(), "{\"error\":\"Program configuration missing\"}");
  }
  @Test(groups = {"webservice"})
  public void testSubmitReportWhenTemplateNotConfigured() throws SQLException, IOException {
    dbWrapper.deleteTable("program_rnr_columns");
    HttpClient client = new HttpClient();
    client.createContext();
    Report reportFromJson = JsonUtility.readObjectFromFile(FULL_JSON_TXT_FILE_NAME, Report.class);
    reportFromJson.setAgentCode("V10");
    reportFromJson.setProgramCode("HIV");

    ResponseEntity responseEntity =
        client.SendJSON(
            getJsonStringFor(reportFromJson),
            "http://localhost:9091/rest-api/requisitions.json",
            POST,
            "commTrack",
            "Admin123");

    assertEquals(400, responseEntity.getStatus());
    assertEquals(
        "{\"error\":\"Please contact admin to define R&R template for this program\"}",
        responseEntity.getResponse());
  }
  @Test(groups = {"webservice"})
  public void testPreviousPeriodSubmitReportForParentFacility() throws IOException {
    HttpClient client = new HttpClient();
    client.createContext();

    Report reportFromJson = JsonUtility.readObjectFromFile(FULL_JSON_TXT_FILE_NAME, Report.class);
    reportFromJson.setAgentCode("F10");
    reportFromJson.setProgramCode("HIV");
    reportFromJson.getProducts().get(0).setProductCode("P10");

    ResponseEntity responseEntity =
        client.SendJSON(
            getJsonStringFor(reportFromJson),
            "http://localhost:9091/rest-api/requisitions.json",
            POST,
            "commTrack",
            "Admin123");

    assertEquals(400, responseEntity.getStatus());
    assertEquals(
        "{\"error\":\"Please finish all R&R of previous period(s)\"}",
        responseEntity.getResponse());
  }
  @Test(groups = {"webservice"})
  public void testInitiateRnrWhenProgramStartDateIsAfterCurrentDateAndCurrentPeriodEndDate()
      throws SQLException, IOException {
    dbWrapper.insertProcessingPeriod("future", "future period", "2016-01-30", "2017-01-30", 1, "M");
    dbWrapper.updateProgramsSupportedByField("startDate", "2017-01-01", "V10");
    HttpClient client = new HttpClient();
    client.createContext();
    Report reportFromJson =
        JsonUtility.readObjectFromFile(PRODUCT_JSON_TXT_FILE_NAME, Report.class);
    reportFromJson.setAgentCode("V10");
    reportFromJson.setProgramCode("HIV");
    reportFromJson.getProducts().get(0).setProductCode("P10");

    ResponseEntity responseEntity =
        client.SendJSON(
            getJsonStringFor(reportFromJson),
            "http://localhost:9091/rest-api/requisitions.json",
            POST,
            "commTrack",
            "Admin123");

    assertEquals(400, responseEntity.getStatus());
    assertEquals(responseEntity.getResponse(), "{\"error\":\"Program configuration missing\"}");
  }
Beispiel #14
0
  public void getValue(JsonUtility json) {
    name = json.getProperty("/type/object/name", "value");
    description = json.getProperty("/common/topic/description", "value");
    sport = json.getProperty("/sports/sports_team/sport", "text");
    arena = json.getProperty("/sports/sports_team/arena_stadium", "text");
    championships = json.getProperty("/sports/sports_team/championships", "text");
    founded = json.getProperty("/sports/sports_team/founded", "text");
    locations = json.getProperty("/sports/sports_team/location", "text");

    // get league
    List<String> leagueTemp =
        json.getPropertyComplex("/sports/sports_team/league", "text", leagueList);
    leagueTemp.removeAll(Arrays.asList("*"));
    for (String str : leagueTemp) {
      leagues.add(str.replaceAll("league ", ""));
    }

    // get coach
    List<String> coach = json.getPropertyComplex("/sports/sports_team/coaches", "text", coachList);
    List<String> coachFrom = new ArrayList<String>();
    List<String> coachTo = new ArrayList<String>();
    int count = 0;
    for (String str : coach) {
      if (!str.equals("*")) {
        String temp = str.split(" ")[0];
        if (temp.equals("from")) {
          coachFrom.add(str.substring(temp.length() + 1));
        } else if (temp.equals("to")) {
          if (str.substring(temp.length() + 1).equals("[]")) {
            coachTo.add("now");
          } else {
            coachTo.add(str.substring(temp.length() + 1));
          }
        } else if (temp.equals("coach")) {
          coachName.add(str.substring(temp.length() + 1));
        } else if (temp.equals("position")) {
          coachPosition.add(str.substring(temp.length() + 1));
        }

      } else {
        if (coachFrom.size() < count + 1) {
          coachFrom.add(" ");
        }
        if (coachTo.size() < count + 1) {
          coachTo.add(" ");
        }
        if (coachName.size() < count + 1) {
          coachName.add(" ");
        }
        if (coachPosition.size() < count + 1) {
          coachPosition.add(" ");
        }

        count++;
      }
    }
    coachFromTo = combineFromTo(coachFrom, coachTo);

    // get player
    List<String> player = json.getPropertyComplex("/sports/sports_team/roster", "text", playerList);
    List<String> playerFrom = new ArrayList<String>();
    List<String> playerTo = new ArrayList<String>();
    count = 0;
    for (String str : player) {
      if (!str.equals("*")) {
        String temp = str.split(" ")[0];
        if (temp.equals("from")) {
          playerFrom.add(str.substring(temp.length() + 1));
        } else if (temp.equals("to")) {
          if (str.substring(temp.length() + 1).equals("[]")) {
            playerTo.add("now");
          } else {
            playerTo.add(str.substring(temp.length() + 1));
          }
        } else if (temp.equals("player")) {
          playerName.add(str.substring(temp.length() + 1));
        } else if (temp.equals("number")) {
          playerNumber.add(str.substring(temp.length() + 1));
        } else {
          playerPosition.add(str);
        }

      } else {
        if (playerFrom.size() < count + 1) {
          playerFrom.add(" ");
        }
        if (playerTo.size() < count + 1) {
          playerTo.add(" ");
        }
        if (playerName.size() < count + 1) {
          playerName.add(" ");
        }
        if (playerPosition.size() < count + 1) {
          playerPosition.add(" ");
        }
        if (playerNumber.size() < count + 1) {
          playerNumber.add(" ");
        }
        count++;
      }
    }
    playerFromTo = combineFromTo(playerFrom, playerTo);
  }