@@ -0,0 +1,3090 @@
+/*%0A * Licensed to the Apache Software Foundation (ASF) under one or more%0A * contributor license agreements.  See the NOTICE file distributed with%0A * this work for additional information regarding copyright ownership.%0A * The ASF licenses this file to You under the Apache License, Version 2.0%0A * (the %22License%22); you may not use this file except in compliance with%0A * the License.  You may obtain a copy of the License at%0A *%0A *   http://www.apache.org/licenses/LICENSE-2.0%0A *%0A * Unless required by applicable law or agreed to in writing, software%0A * distributed under the License is distributed on an %22AS IS%22 BASIS,%0A * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.%0A * See the License for the specific language governing permissions and%0A * limitations under the License.%0A * %0A */%0A%0Apackage org.apache.jmeter.assertions;%0A%0Aimport org.apache.jmeter.junit.JMeterTestCase;%0Aimport org.apache.jmeter.samplers.SampleResult;%0Aimport org.apache.jmeter.threads.JMeterContext;%0Aimport org.apache.jmeter.threads.JMeterContextService;%0Aimport org.apache.jmeter.threads.JMeterVariables;%0Aimport org.junit.Assert;%0Aimport org.junit.Before;%0Aimport org.junit.Test;%0A%0Apublic class XmlAssertionTest extends JMeterTestCase %7B%0A%0A    private XMLAssertion assertion;%0A    private SampleResult sampleResult;%0A    private AssertionResult result;%0A    private final String invalidXml = %22%3Cnote%3E%3Cto%3ETove%3C/to%3E%3Cfrom%3EJani%3C/from%3E%3Cheading%3EReminder%3C/heading%3E%3Cbody%3EDon't forget me this weekend!%3C/body%3E%3C/note1%3E%22;%0A    private final String validXml = %22%3Cnote%3E%3Cto%3ETove%3C/to%3E%3Cfrom%3EJani%3C/from%3E%3Cheading%3EReminder%3C/heading%3E%3Cbody%3EDon't forget me this weekend!%3C/body%3E%3C/note%3E%22;%0A    private final String noXml = %22response Data%22;%0A%0A    @Before%0A    public void setUp() %7B%0A        JMeterContext jmctx = JMeterContextService.getContext();%0A        assertion = new XMLAssertion();%0A        assertion.setThreadContext(jmctx);%0A        JMeterVariables vars = new JMeterVariables();%0A        jmctx.setVariables(vars);%0A        sampleResult = new SampleResult();%0A    %7D%0A%0A    @Test%0A    public void testValidXML() throws Exception %7B%0A        sampleResult.setResponseData(validXml, null);%0A        result = assertion.getResult(sampleResult);%0A        Assert.assertFalse(result.isFailure());%0A        Assert.assertFalse(result.isError());%0A        Assert.assertNull(result.getFailureMessage());%0A    %7D%0A    %0A    @Test%0A    public void testInvalidXML() throws Exception %7B%0A        sampleResult.setResponseData(invalidXml, null);%0A        result = assertion.getResult(sampleResult);%0A        Assert.assertTrue(result.isFailure());%0A        Assert.assertTrue(result.isError());%0A        Assert.assertNotNull(result.getFailureMessage());%0A    %7D%0A    %0A    @Test%0A    public void testNoXML() throws Exception %7B%0A        sampleResult.setResponseData(noXml, null);%0A        result = assertion.getResult(sampleResult);%0A        Assert.assertTrue(result.isFailure());%0A        Assert.assertTrue(result.isError());%0A        Assert.assertNotNull(result.getFailureMessage());%0A        Assert.assertTrue(result.getFailureMessage().contains(%22Content is not allowed in prolog%22));%0A    %7D%0A%7D%0A

Add tests for XmlAssertion