/** * Copyright 2011 Intuit Inc. All Rights Reserved */ package com.intuit.tank.api.model.v1.script; /* * #%L * Script Rest API * %% * Copyright (C) 2011 - 2015 Intuit Inc. * %% * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * #L% */ import java.io.File; import java.util.ArrayList; import java.util.Date; import java.util.HashSet; import java.util.List; import java.util.Set; import java.util.UUID; import javax.xml.bind.JAXBContext; import javax.xml.bind.Marshaller; import org.junit.Assert; import org.testng.annotations.Test; import com.intuit.tank.api.model.v1.script.ScriptStepContainer; import com.intuit.tank.api.model.v1.script.ScriptStepTO; import com.intuit.tank.api.model.v1.script.StepDataTO; /** * DataFileDescriptorTest * * @author dangleton * */ public class ScriptContainerTest { @Test(groups = { "manual" }) public void generateSample() throws Exception { JAXBContext ctx = JAXBContext.newInstance(ScriptStepContainer.class.getPackage().getName()); Marshaller marshaller = ctx.createMarshaller(); marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); List<ScriptStepTO> steps = new ArrayList<ScriptStepTO>(); for (int i = 0; i < 3; i++) { steps.add(createStep(i)); } ScriptStepContainer jaxbObject = ScriptStepContainer.builder().withNumRemaining(10).withNumRequsted(100) .withNumReturned(2).withStartIndex(20).withSteps(steps).build(); File parent = new File("target/jaxb-sample-xml"); parent.mkdirs(); Assert.assertTrue(parent.exists()); File file = new File(parent, jaxbObject.getClass().getSimpleName() + ".xml"); marshaller.marshal(jaxbObject, file); Assert.assertTrue(file.length() > 0); ScriptStepContainer unmarshalled = (ScriptStepContainer) ctx.createUnmarshaller().unmarshal(file); Assert.assertEquals(unmarshalled.getNumRemaining(), jaxbObject.getNumRemaining()); Assert.assertEquals(unmarshalled.getNumRequsted(), jaxbObject.getNumRequsted()); Assert.assertEquals(unmarshalled.getNumReturned(), jaxbObject.getNumReturned()); } public ScriptStepTO createStep(int index) { ScriptStepTO ret = new ScriptStepTO(); ret.setComments("comments"); ret.setCreated(new Date()); ret.setModified(new Date()); ret.setHostname("www.google.com"); ret.setLabel("label"); ret.setMethod("GET"); ret.setMimetype("text/html"); ret.setName("Name"); ret.setOnFail("abort"); ret.setProtocol("http"); ret.setReqFormat("reqFormat"); ret.setRespFormat("respFormat"); ret.setResult("success"); ret.setScriptGroupName("scriptGroupName"); ret.setSimplePath("/simplePath"); ret.setStepIndex(index); ret.setType("type"); ret.setUrl("http://www.google.com"); ret.setUuid(UUID.randomUUID().toString()); ret.setData(createData("requestData")); ret.setPostDatas(createData("requestPostData")); ret.setQueryStrings(createData("queryString")); ret.setRequestCookies(createData("requestCookie")); ret.setRequestheaders(createData("requestheader")); ret.setResponseCookies(createData("responseCookie")); ret.setResponseheaders(createData("responseHeader")); return ret; } /** * @param string * @return */ private Set<StepDataTO> createData(String type) { Set<StepDataTO> ret = new HashSet<StepDataTO>(); for (int i = 0; i < 3; i++) { StepDataTO data = new StepDataTO(); data.setKey("key " + i); data.setValue("value " + i); data.setType(type); ret.add(data); } return ret; } }