package server.mcsv1002; import org.junit.Before; import org.junit.Test; import ru.codeinside.gws.api.ReceiptContext; import server.mcsv1002.response.HousebookExtractionResponse; import server.mcsv1002.response.Owner; import server.mcsv1002.response.RegisteredPerson; import javax.xml.datatype.XMLGregorianCalendar; import java.text.SimpleDateFormat; import java.util.Date; import static org.junit.Assert.assertEquals; public class ResponseExtractorTest { private ReceiptContext ctx; private ResponseExtractor extractor; private Date ownerSince; private Date checkInDate; private Date checkOutDate; private Date docIssueDate; private Date personBirthday; @Before public void setUp() throws Exception { ctx = new DummyContext(); extractor = new ResponseExtractor(); ownerSince = new SimpleDateFormat("dd.MM.yyyy").parse("15.12.2012"); checkInDate = new SimpleDateFormat("dd.MM.yyyy").parse("25.12.2011"); checkOutDate = new SimpleDateFormat("dd.MM.yyyy").parse("25.11.2011"); docIssueDate = new SimpleDateFormat("dd.MM.yyyy").parse("15.11.2011"); personBirthday = new SimpleDateFormat("dd.MM.yyyy").parse("15.11.2011"); } @Test public void testFillOwners() throws Exception { ctx.setVariable("owners", 1l); ctx.setVariable("owner_first_name_1", "owner_first_name_0"); ctx.setVariable("owner_last_name_1", "owner_last_name_0"); ctx.setVariable("owner_given_name_1", "owner_given_name_0"); ctx.setVariable("owner_share_1", "owner_share_0"); ctx.setVariable("owner_type_1", "owner_type_0"); ctx.setVariable("owner_since_1", ownerSince); ctx.setVariable("owner_size_1", "owner_size_0"); ctx.setVariable("request_is_correct", true); ctx.setVariable("is_order_rejected", false); final HousebookExtractionResponse response = extractor.convertToResponseObject(ctx); assertEquals(1, response.getOwner().size()); final Owner owner = response.getOwner().get(0); assertEquals("owner_first_name_0", owner.getFirstName()); assertEquals("owner_given_name_0", owner.getGivenName()); assertEquals("owner_last_name_0", owner.getLastName()); assertEquals("owner_share_0", owner.getShare()); assertEquals("owner_type_0", owner.getType()); assertEquals("owner_size_0", owner.getSize()); checkXMLCalendar(owner.getSince(), 15, 12, 2012); } @Test public void testFillPerson() throws Exception { ctx.setVariable("is_order_rejected", false); ctx.setVariable("person", 1l); ctx.setVariable("person_last_name_1", "person_last_name_0"); ctx.setVariable("person_first_name_1", "person_first_name_0"); ctx.setVariable("person_given_name_1", "person_given_name_0"); ctx.setVariable("person_birth_place_1", "person_birth_place_0"); ctx.setVariable("person_birthday_1", personBirthday); ctx.setVariable("person_doc_type_1", "person_doc_type_0"); ctx.setVariable("person_doc_series_1", "person_doc_series_0"); ctx.setVariable("person_doc_number_1", "person_doc_number_0"); ctx.setVariable("person_doc_issue_date_1", docIssueDate); ctx.setVariable("person_doc_issuer_1", "person_doc_issuer_0"); ctx.setVariable("person_checkin_date_1", checkInDate); ctx.setVariable("person_checkout_date_1", checkOutDate); ctx.setVariable("request_is_correct", true); final HousebookExtractionResponse response = extractor.convertToResponseObject(ctx); assertEquals(1, response.getRegisteredPerson().size()); final RegisteredPerson person = response.getRegisteredPerson().get(0); assertEquals("person_last_name_0", person.getLastName()); assertEquals("person_first_name_0", person.getFirstName()); assertEquals("person_given_name_0", person.getGivenName()); assertEquals("person_birth_place_0", person.getBirthPlace()); checkXMLCalendar(person.getBirthday(), 15, 11, 2011); assertEquals("person_doc_type_0", person.getDocType()); assertEquals("person_doc_series_0", person.getDocSerie()); assertEquals("person_doc_number_0", person.getDocNumber()); checkXMLCalendar(person.getDocIssueDate(), 15, 11, 2011); assertEquals("person_doc_issuer_0", person.getDocIssuer()); checkXMLCalendar(person.getCheckinDate(), 25, 12, 2011); checkXMLCalendar(person.getCheckoutDate(), 25, 11, 2011); } private void checkXMLCalendar(XMLGregorianCalendar since, int expectedDay, int expectedMonth, int expectedYear) { assertEquals(expectedMonth, since.getMonth()); assertEquals(expectedDay, since.getDay()); assertEquals(expectedYear, since.getYear()); } @Test public void testComment() throws Exception { ctx.setVariable("is_order_rejected", false); final String commentText = "comment_text"; ctx.setVariable("request_is_correct", true); ctx.setVariable("comment", commentText); final HousebookExtractionResponse response = extractor.convertToResponseObject(ctx); assertEquals(commentText, response.getComment()); } @Test(expected = DeclarerException.class) public void testThrowExceptionWhenResponseMarkedAsWrong() throws Exception { ctx.setVariable("is_order_rejected", false); ctx.setVariable("request_is_correct", false); extractor.convertToResponseObject(ctx); } @Test(expected = DeclarerException.class) public void testThrowExceptionWhenOrderIsRejected() throws Exception { ctx.setVariable("is_order_rejected", null); ctx.setVariable("request_is_correct", true); extractor.convertToResponseObject(ctx); } @Test public void testFillRequestParams() throws Exception { ctx.setVariable("is_order_rejected", false); ctx.setVariable("request_is_correct", true); ctx.setVariable("regionCode", "regionCode"); ctx.setVariable("objectDistrict", "objectDistrict"); ctx.setVariable("objectCity", "objectCity"); ctx.setVariable("objectTown", "objectTown"); ctx.setVariable("objectStreet", "objectStreet"); ctx.setVariable("objectHouse", "objectHouse"); ctx.setVariable("objectCorpus", "objectCorpus"); ctx.setVariable("objectBuilding", "objectBuilding"); ctx.setVariable("objectFlat", "objectFlat"); ctx.setVariable("objectCadastrNumber", "objectCadastrNumber"); ctx.setVariable("objectConditNumber", "objectConditNumber"); final HousebookExtractionResponse response = extractor.convertToResponseObject(ctx); assertEquals("regionCode", response.getRegionCode()); assertEquals("objectDistrict", response.getObjectDistrict()); assertEquals("objectCity", response.getObjectCity()); assertEquals("objectTown", response.getObjectTown()); assertEquals("objectStreet", response.getObjectStreet()); assertEquals("objectHouse", response.getObjectHouse()); assertEquals("objectCorpus", response.getObjectCorpus()); assertEquals("objectBuilding", response.getObjectBuilding()); assertEquals("objectFlat", response.getObjectFlat()); assertEquals("objectCadastrNumber", response.getObjectCadastrNumber()); assertEquals("objectConditNumber", response.getObjectConditNumber()); } }