private RecordedHttpRequest createHttpRequest() throws IOException { _jsonParser.nextToken(); // HTTPREQUEST.FIELD_NAME validateRequiredField(SceneSerializationConstant.SCENE_TAG_HTTPREQUEST); _jsonParser.nextToken(); // HTTPREQUEST START_OBJECT String httpMethod = createHttpMethod(); URI uri = createUri(); //Create optional fields _jsonParser.nextToken(); // Move to next token Multimap<String, String> headers = createHeaders(); RecordedHttpBody recordedHttpBody = createHttpBody(); RecordedHttpRequest recordedHttpRequest = new RecordedHttpRequest(httpMethod, uri, headers, recordedHttpBody); //Check if reach to the end of object for http request if (!(_jsonParser.getCurrentName().equals(SceneSerializationConstant.SCENE_TAG_HTTPREQUEST) && _jsonParser.getCurrentToken() == JsonToken.END_OBJECT)) { _jsonParser.nextToken(); } return recordedHttpRequest; }
private List<RecordedHttpExchange> createHttpExchangeList() throws IOException { _jsonParser.nextToken(); //HTTPEXCHANGELIST FIELD_NAME validateRequiredField(SceneSerializationConstant.SCENE_TAG_HTTPEXCHANGE_LIST); skipStartObject(); // HTTPEXCHANGELIST START_OBJECT List<RecordedHttpExchange> recordedHttpExchangeList = new ArrayList<>(); int count = 1; _jsonParser.nextToken(); // HTTPEXCHANGE FIELD_NAME while (_jsonParser.getCurrentToken() != JsonToken.END_OBJECT) { if ((SceneSerializationConstant.SCENE_TAG_HTTPEXCHANGE + count).equals(_jsonParser.getCurrentName())) { skipStartObject(); recordedHttpExchangeList.add(createHttpExchange()); count++; skipEndObject(); // JsonToken.START_OBJECT } } return recordedHttpExchangeList; }
public Scene deserialize(Reader reader) throws IOException { _jsonParser = JSON_FACTORY.createParser(reader); skipStartObject(); _jsonParser.nextToken(); validateRequiredField(SceneSerializationConstant.SCENE_TAG_NAME); _jsonParser.nextToken(); String name = _jsonParser.getValueAsString(); return new Scene(name, null, ".", createHttpExchangeList()); }
private RecordedHttpExchange createHttpExchange() throws IOException { _jsonParser.nextToken(); // UPDATETIME FIELD_NAME validateRequiredField(SceneSerializationConstant.SCENE_TAG_UPDATE_TIME); _jsonParser.nextToken(); // UPDATETIME VALUE_STRING Date date = new Date(_jsonParser.getValueAsString()); RecordedHttpRequest recordedHttpRequest = createHttpRequest(); RecordedHttpResponse recordedHttpResponse = createHttpResponse(); skipEndObject(); // HTTPEXCHANGE return new RecordedHttpExchange(recordedHttpRequest, recordedHttpResponse, date); }
/** * Read scene from file and construct Scene object * @param name scene name * @return scene object de-serialized from file * * */ public Scene readScene(String rootPath, String name) throws IOException { File file = new File(rootPath, name); if (file.isFile()) { if (file.length() == 0) { return new Scene(name, null, rootPath, new ArrayList<>()); } BufferedReader reader = Files.newReader(file, Charset.forName(SceneSerializationConstant.FILE_CHARSET)); SceneDeserializer sceneDeserializer = new SceneDeserializer(); return sceneDeserializer.deserialize(reader); } return null; } }
private RecordedHttpBody createHttpBody() throws IOException { if (isValidOptionalField(SceneSerializationConstant.SCENE_TAG_ENCODED_HTTPBODY)) { skipStartObject(); // ENCODEDHTTPBODY _jsonParser.nextToken(); // HTTPBODYENCODING Field validateRequiredField(SceneSerializationConstant.SCENE_TAG_HTTPBODY_ENCODING); _jsonParser.nextToken(); // HTTPBODYENCODING Value String encodingName = _jsonParser.getValueAsString(); _jsonParser.nextToken(); RecordedHttpBody decodedBody = createHttpBody(); // Read in the "decoded" body content so that we can wrap it skipEndObject(); return new RecordedEncodedHttpBody(decodedBody, encodingName); } if (isValidOptionalField(SceneSerializationConstant.SCENE_TAG_STRING_HTTPBODY)) { _jsonParser.nextToken(); // Field return new RecordedStringHttpBody(_jsonParser.getValueAsString()); } if (isValidOptionalField(SceneSerializationConstant.SCENE_TAG_BINARY_HTTPBODY)) { _jsonParser.nextToken(); // Field return new RecordedByteHttpBody(_jsonParser.getBinaryValue()); } return null; }
private RecordedHttpResponse createHttpResponse() throws IOException { _jsonParser.nextToken(); // HTTPRESPONSE Field name validateRequiredField(SceneSerializationConstant.SCENE_TAG_HTTPRESPONSE); _jsonParser.nextToken(); // HTTPRESPONSE.START_OBJECT int statusCode = createStatusCode(); _jsonParser.nextToken(); // Move to next token Multimap<String, String> headers = createHeaders(); RecordedHttpBody recordedHttpBody = createHttpBody(); RecordedHttpResponse recordedHttpResponse = new RecordedHttpResponse(statusCode, headers, recordedHttpBody); //Check if reach to the end of object for http response if (!(SceneSerializationConstant.SCENE_TAG_HTTPRESPONSE.equals(_jsonParser.getCurrentName()) && _jsonParser.getCurrentToken() == JsonToken.END_OBJECT)) { _jsonParser.nextToken(); } return recordedHttpResponse; }
@Test public void testDeserialize() throws Exception { StringReader stringReader = new StringReader(MockDataGenerator.getSerializedScene()); SceneDeserializer sceneDeserializer = new SceneDeserializer(); Scene scene = sceneDeserializer.deserialize(stringReader); Scene expectedScene = MockDataGenerator.getMockScene(); Assert.assertEquals(scene, expectedScene); }
@Test public void testDeserializeWithoutBody() throws Exception { StringReader stringReader = new StringReader(MockDataGenerator.getSerializedSceneWithoutBody()); SceneDeserializer sceneDeserializer = new SceneDeserializer(); Scene scene = sceneDeserializer.deserialize(stringReader); Scene expectedScene = MockDataGenerator.getMockSceneWithoutBody(); Assert.assertEquals(scene, expectedScene); }
@Test public void testDeserializeWithoutBodyAndHeaders() throws Exception { StringReader stringReader = new StringReader(MockDataGenerator.getSerializedSceneWithoutBodyAndHeader()); SceneDeserializer sceneDeserializer = new SceneDeserializer(); Scene scene = sceneDeserializer.deserialize(stringReader); Scene expectedScene = MockDataGenerator.getMockSceneWithoutBodyAndHeader(); Assert.assertEquals(scene, expectedScene); } }
@Test public void testDeserializeWithoutHeaders() throws Exception { StringReader stringReader = new StringReader(MockDataGenerator.getSerializedSceneWithoutHeaders()); SceneDeserializer sceneDeserializer = new SceneDeserializer(); Scene scene = sceneDeserializer.deserialize(stringReader); Scene expectedScene = MockDataGenerator.getMockSceneWithoutHeaders(); Assert.assertEquals(scene, expectedScene); }