use xmlunit for xml diffs in unit tests
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1825810 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
3716f4a556
commit
aee50698a4
@ -35,6 +35,7 @@
|
|||||||
<classpathentry exported="true" kind="lib" path="lib/commons-logging-1.2.jar"/>
|
<classpathentry exported="true" kind="lib" path="lib/commons-logging-1.2.jar"/>
|
||||||
<classpathentry exported="true" kind="lib" path="lib/commons-collections4-4.1.jar"/>
|
<classpathentry exported="true" kind="lib" path="lib/commons-collections4-4.1.jar"/>
|
||||||
<classpathentry kind="lib" path="lib/commons-math3-3.6.1.jar"/>
|
<classpathentry kind="lib" path="lib/commons-math3-3.6.1.jar"/>
|
||||||
|
<classpathentry kind="lib" path="lib/xmlunit-core-2.5.1.jar"/>
|
||||||
<classpathentry kind="lib" path="lib/mockito-core-2.13.0.jar"/>
|
<classpathentry kind="lib" path="lib/mockito-core-2.13.0.jar"/>
|
||||||
<classpathentry kind="lib" path="lib/byte-buddy-1.7.9.jar"/>
|
<classpathentry kind="lib" path="lib/byte-buddy-1.7.9.jar"/>
|
||||||
<classpathentry kind="lib" path="lib/byte-buddy-agent-1.7.9.jar"/>
|
<classpathentry kind="lib" path="lib/byte-buddy-agent-1.7.9.jar"/>
|
||||||
|
@ -206,6 +206,7 @@ project('ooxml') {
|
|||||||
|
|
||||||
testCompile 'junit:junit:4.12'
|
testCompile 'junit:junit:4.12'
|
||||||
testCompile 'org.mockito:mockito-core:2.13.0'
|
testCompile 'org.mockito:mockito-core:2.13.0'
|
||||||
|
testCompile 'org.xmlunit:xmlunit-core:2.5.1'
|
||||||
testCompile project(path: ':main', configuration: 'tests')
|
testCompile project(path: ':main', configuration: 'tests')
|
||||||
testCompile 'org.openjdk.jmh:jmh-core:1.19'
|
testCompile 'org.openjdk.jmh:jmh-core:1.19'
|
||||||
testCompile 'org.openjdk.jmh:jmh-generator-annprocess:1.19'
|
testCompile 'org.openjdk.jmh:jmh-generator-annprocess:1.19'
|
||||||
|
@ -164,6 +164,8 @@ under the License.
|
|||||||
|
|
||||||
<property name="main.hamcrest.jar" location="${main.lib}/hamcrest-core-1.3.jar"/>
|
<property name="main.hamcrest.jar" location="${main.lib}/hamcrest-core-1.3.jar"/>
|
||||||
<property name="main.hamcrest.url" value="${repository.m2}/maven2/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar"/>
|
<property name="main.hamcrest.url" value="${repository.m2}/maven2/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar"/>
|
||||||
|
<property name="main.xmlunit.jar" location="${main.lib}/xmlunit-core-2.5.1.jar"/>
|
||||||
|
<property name="main.xmlunit.url" value="${repository.m2}/maven2/org/xmlunit/xmlunit-core/2.5.1/xmlunit-core-2.5.1.jar"/>
|
||||||
<property name="main.mockito.jar" location="${main.lib}/mockito-core-2.13.0.jar"/>
|
<property name="main.mockito.jar" location="${main.lib}/mockito-core-2.13.0.jar"/>
|
||||||
<property name="main.mockito.url" value="${repository.m2}/maven2/org/mockito/mockito-core/2.13.0/mockito-core-2.13.0.jar"/>
|
<property name="main.mockito.url" value="${repository.m2}/maven2/org/mockito/mockito-core/2.13.0/mockito-core-2.13.0.jar"/>
|
||||||
<property name="main.byte-buddy.jar" location="${main.lib}/byte-buddy-1.7.9.jar"/>
|
<property name="main.byte-buddy.jar" location="${main.lib}/byte-buddy-1.7.9.jar"/>
|
||||||
@ -325,6 +327,7 @@ under the License.
|
|||||||
<pathelement location="${main.jmh.jar}"/>
|
<pathelement location="${main.jmh.jar}"/>
|
||||||
<pathelement location="${main.jmhAnnotation.jar}"/>
|
<pathelement location="${main.jmhAnnotation.jar}"/>
|
||||||
<pathelement location="${main.hamcrest.jar}"/>
|
<pathelement location="${main.hamcrest.jar}"/>
|
||||||
|
<pathelement location="${main.xmlunit.jar}"/>
|
||||||
<pathelement location="${main.mockito.jar}"/>
|
<pathelement location="${main.mockito.jar}"/>
|
||||||
<pathelement location="${main.byte-buddy.jar}"/>
|
<pathelement location="${main.byte-buddy.jar}"/>
|
||||||
<pathelement location="${main.byte-buddy-agent.jar}"/>
|
<pathelement location="${main.byte-buddy-agent.jar}"/>
|
||||||
@ -632,6 +635,7 @@ under the License.
|
|||||||
<available file="${main.jmh.jar}"/>
|
<available file="${main.jmh.jar}"/>
|
||||||
<available file="${main.jmhAnnotation.jar}"/>
|
<available file="${main.jmhAnnotation.jar}"/>
|
||||||
<available file="${main.hamcrest.jar}"/>
|
<available file="${main.hamcrest.jar}"/>
|
||||||
|
<available file="${main.xmlunit.jar}"/>
|
||||||
<available file="${main.mockito.jar}"/>
|
<available file="${main.mockito.jar}"/>
|
||||||
<available file="${main.byte-buddy.jar}"/>
|
<available file="${main.byte-buddy.jar}"/>
|
||||||
<available file="${main.byte-buddy-agent.jar}"/>
|
<available file="${main.byte-buddy-agent.jar}"/>
|
||||||
@ -667,6 +671,7 @@ under the License.
|
|||||||
<downloadfile src="${main.jmh.url}" dest="${main.jmh.jar}"/>
|
<downloadfile src="${main.jmh.url}" dest="${main.jmh.jar}"/>
|
||||||
<downloadfile src="${main.jmhAnnotation.url}" dest="${main.jmhAnnotation.jar}"/>
|
<downloadfile src="${main.jmhAnnotation.url}" dest="${main.jmhAnnotation.jar}"/>
|
||||||
<downloadfile src="${main.hamcrest.url}" dest="${main.hamcrest.jar}"/>
|
<downloadfile src="${main.hamcrest.url}" dest="${main.hamcrest.jar}"/>
|
||||||
|
<downloadfile src="${main.xmlunit.url}" dest="${main.xmlunit.jar}"/>
|
||||||
<downloadfile src="${main.mockito.url}" dest="${main.mockito.jar}"/>
|
<downloadfile src="${main.mockito.url}" dest="${main.mockito.jar}"/>
|
||||||
<downloadfile src="${main.byte-buddy.url}" dest="${main.byte-buddy.jar}"/>
|
<downloadfile src="${main.byte-buddy.url}" dest="${main.byte-buddy.jar}"/>
|
||||||
<downloadfile src="${main.byte-buddy-agent.url}" dest="${main.byte-buddy-agent.jar}"/>
|
<downloadfile src="${main.byte-buddy-agent.url}" dest="${main.byte-buddy-agent.jar}"/>
|
||||||
|
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
Binary file not shown.
@ -65,6 +65,7 @@
|
|||||||
<!-- define some of the third-party or plugin-versions globally to use the same in all modules -->
|
<!-- define some of the third-party or plugin-versions globally to use the same in all modules -->
|
||||||
<xmlbeans.version>2.6.0</xmlbeans.version>
|
<xmlbeans.version>2.6.0</xmlbeans.version>
|
||||||
<junit.version>4.12</junit.version>
|
<junit.version>4.12</junit.version>
|
||||||
|
<xmlunit.version>2.5.1</xmlunit.version>
|
||||||
<mockito.version>2.13.0</mockito.version>
|
<mockito.version>2.13.0</mockito.version>
|
||||||
<maven.plugin.resources.version>3.0.1</maven.plugin.resources.version>
|
<maven.plugin.resources.version>3.0.1</maven.plugin.resources.version>
|
||||||
<maven.plugin.jar.version>3.0.1</maven.plugin.jar.version>
|
<maven.plugin.jar.version>3.0.1</maven.plugin.jar.version>
|
||||||
@ -137,6 +138,12 @@
|
|||||||
<version>${junit.version}</version>
|
<version>${junit.version}</version>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.xmlunit</groupId>
|
||||||
|
<artifactId>xmlunit-core</artifactId>
|
||||||
|
<version>${xmlunit.version}</version>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.mockito</groupId>
|
<groupId>org.mockito</groupId>
|
||||||
<artifactId>mockito-core</artifactId>
|
<artifactId>mockito-core</artifactId>
|
||||||
|
@ -18,6 +18,7 @@
|
|||||||
package org.apache.poi.xddf.usermodel;
|
package org.apache.poi.xddf.usermodel;
|
||||||
|
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
|
import static org.junit.Assert.assertFalse;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
@ -31,26 +32,34 @@ import org.openxmlformats.schemas.drawingml.x2006.main.CTSystemColor;
|
|||||||
import org.openxmlformats.schemas.drawingml.x2006.main.STPresetColorVal;
|
import org.openxmlformats.schemas.drawingml.x2006.main.STPresetColorVal;
|
||||||
import org.openxmlformats.schemas.drawingml.x2006.main.STSchemeColorVal;
|
import org.openxmlformats.schemas.drawingml.x2006.main.STSchemeColorVal;
|
||||||
import org.openxmlformats.schemas.drawingml.x2006.main.STSystemColorVal;
|
import org.openxmlformats.schemas.drawingml.x2006.main.STSystemColorVal;
|
||||||
|
import org.xmlunit.builder.DiffBuilder;
|
||||||
|
import org.xmlunit.builder.Input;
|
||||||
|
import org.xmlunit.diff.Diff;
|
||||||
|
|
||||||
public class TestXDDFColor {
|
public class TestXDDFColor {
|
||||||
private static final String XMLNS = "xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\"/>";
|
private static final String XMLNS = "xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\"/>";
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSchemeColor() throws IOException {
|
public void testSchemeColor() throws IOException {
|
||||||
XMLSlideShow ppt = new XMLSlideShow();
|
try (XMLSlideShow ppt = new XMLSlideShow()) {
|
||||||
XSLFTheme theme = ppt.createSlide().getTheme();
|
XSLFTheme theme = ppt.createSlide().getTheme();
|
||||||
|
|
||||||
XDDFColor color = XDDFColor.forColorContainer(getThemeColor(theme, STSchemeColorVal.ACCENT_2));
|
XDDFColor color = XDDFColor.forColorContainer(getThemeColor(theme, STSchemeColorVal.ACCENT_2));
|
||||||
// accent2 in theme1.xml is <a:srgbClr val="C0504D"/>
|
// accent2 in theme1.xml is <a:srgbClr val="C0504D"/>
|
||||||
assertEquals("<a:srgbClr val=\"C0504D\" " + XMLNS, color.getColorContainer().toString());
|
Diff d1 = DiffBuilder.compare(Input.fromString("<a:srgbClr val=\"C0504D\" " + XMLNS))
|
||||||
|
.withTest(color.getColorContainer().toString()).build();
|
||||||
|
assertFalse(d1.toString(), d1.hasDifferences());
|
||||||
|
|
||||||
color = XDDFColor.forColorContainer(getThemeColor(theme, STSchemeColorVal.LT_1));
|
color = XDDFColor.forColorContainer(getThemeColor(theme, STSchemeColorVal.LT_1));
|
||||||
assertEquals("<a:sysClr lastClr=\"FFFFFF\" val=\"window\" " + XMLNS, color.getColorContainer().toString());
|
Diff d2 = DiffBuilder.compare(Input.fromString("<a:sysClr lastClr=\"FFFFFF\" val=\"window\" " + XMLNS))
|
||||||
|
.withTest(color.getColorContainer().toString()).build();
|
||||||
|
assertFalse(d2.toString(), d2.hasDifferences());
|
||||||
|
|
||||||
color = XDDFColor.forColorContainer(getThemeColor(theme, STSchemeColorVal.DK_1));
|
color = XDDFColor.forColorContainer(getThemeColor(theme, STSchemeColorVal.DK_1));
|
||||||
assertEquals("<a:sysClr lastClr=\"000000\" val=\"windowText\" " + XMLNS, color.getColorContainer().toString());
|
Diff d3 = DiffBuilder.compare(Input.fromString("<a:sysClr lastClr=\"000000\" val=\"windowText\" " + XMLNS))
|
||||||
|
.withTest(color.getColorContainer().toString()).build();
|
||||||
ppt.close();
|
assertFalse(d3.toString(), d3.hasDifferences());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private CTColor getThemeColor(XSLFTheme theme, STSchemeColorVal.Enum value) {
|
private CTColor getThemeColor(XSLFTheme theme, STSchemeColorVal.Enum value) {
|
||||||
|
Loading…
Reference in New Issue
Block a user