package com.plectix.simulator.util; import java.util.Collection; public class Failer { private String myCurrentTestFileName; private boolean myIsFailed = false; public Failer() { } public void loadTestFile(String file) { myCurrentTestFileName = file; } public void fail(String message) { myIsFailed = true; org.junit.Assert.fail(message); } public boolean isFailed() { return myIsFailed; } private void myFail(String message) { if (myCurrentTestFileName != null) { fail(myCurrentTestFileName + " : " + message); } else { fail(message); } } public void failOnMC(MessageConstructor mc) { if (!mc.isEmpty()) { fail(mc.getMessage()); } } public void assertTrue(String message, boolean value) { if (!value) { myFail(message); } } public void assertFalse(String message, boolean value) { assertTrue(message, !value); } private String failedEquals(Object a, Object b) { return "expected " + a + ", but was " + b; } public void assertEquals(String message, Object a, Object b) { String newMessage = message + " " + failedEquals(a, b); if (a == null) { assertTrue(newMessage, b == null); } else { assertTrue(newMessage, a.equals(b)); } } private boolean close(double a, double b) { return (Math.abs(a - b) < 1e-10); } public void assertDoubleEquals(String message, double a, double b) { String newMessage = message + " " + failedEquals(a, b); assertTrue(newMessage, close(a, b)); } public boolean collectionElementEquals(Object a, Object b) { if (a != null) { return a.equals(b); } else { return b == null; } } public <E> boolean collectionsEquals(Collection<E> a, Collection<E> b) { CollectionsComparator cc = new CollectionsComparator() { @Override public boolean equals(Object a, Object b) { return collectionElementEquals(a, b); } }; return cc.areEqual(a, b); } public <E> void assertEquals(String message, Collection<E> a, Collection<E> b) { String newMessage = message + " " + failedEquals(a, b); if (a == null) { assertTrue(newMessage + failedEquals(a, b), b == null); } else { if (b == null) { myFail(newMessage); } else { assertTrue(newMessage, collectionsEquals(a, b)); } } } public void assertEmpty(String message, Collection<?> e) { assertSizeEquality(message, e, 0); } public void assertSizeEquality(String message, Collection<?> e, Integer expected) { if (expected == null) { myFail("test initialization error"); } if (e == null) { assertEquals(message + " size : ", expected, 0); } else { assertEquals(message + " size : ", expected, e.size()); } } }