package org.identityconnectors.dbcommon; import java.io.IOException; import java.text.MessageFormat; import java.util.Properties; import org.identityconnectors.common.IOUtil; import org.identityconnectors.framework.common.objects.ConnectorMessages; import org.testng.Assert; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; /** Tests for LocalizedAssert */ public class LocalizedAssertTest { private static class TestConnectorMessages implements ConnectorMessages { private Properties properties; TestConnectorMessages() { try { properties = IOUtil.getResourceAsProperties(getClass().getClassLoader(), LocalizedAssertTest.class.getPackage().getName().replace('.', '/') + "/Messages.properties"); Assert.assertNotNull(properties, "Cannot load Messages.properties"); } catch (IOException e) { Assert.fail("Cannot load Messages.properties" + e.getMessage()); } } public String format(String key, String dflt, Object... args) { String value = properties.getProperty(key); if (value == null) { return dflt != null ? dflt : key; } if (args == null) { return value; } return MessageFormat.format(value, args); } } static LocalizedAssert testee; /** * Setup testee */ @BeforeClass public static void setup() { testee = new LocalizedAssert(new TestConnectorMessages()); } /** * Test method for * {@link org.identityconnectors.dbcommon.LocalizedAssert#assertNotNull(java.lang.Object, java.lang.String)} * . */ @Test public final void testAssertNotNull() { Integer i = testee.assertNotNull(new Integer(1), "i"); Assert.assertEquals(new Integer(1), i); try { i = testee.assertNotNull(null, "i"); Assert.fail("Must fail for null argument"); } catch (RuntimeException e) { Assert.assertEquals("Argument [i] cannot be null", e.getMessage()); } } /** * Test method for * {@link org.identityconnectors.dbcommon.LocalizedAssert#assertNull(java.lang.Object, java.lang.String)} * . */ @Test public final void testAssertNull() { Integer i = testee.assertNull(null, "i"); Assert.assertNull(i); try { i = testee.assertNull(new Integer(1), "i"); Assert.fail("Must fail for not null argument"); } catch (RuntimeException e) { Assert.assertEquals("Argument [i] must be null", e.getMessage()); } } /** * Test method for * {@link org.identityconnectors.dbcommon.LocalizedAssert#assertNotBlank(java.lang.String, java.lang.String)} * . */ @Test public final void testAssertNotBlank() { String os = testee.assertNotBlank("Linux", "os"); Assert.assertEquals("Linux", os); try { os = testee.assertNotBlank(null, "os"); Assert.fail("Must fail for null argument"); } catch (RuntimeException e) { Assert.assertEquals("Argument [os] cannot be blank", e.getMessage()); } try { os = testee.assertNotBlank("", "os"); Assert.fail("Must fail for blank argument"); } catch (RuntimeException e) { Assert.assertEquals("Argument [os] cannot be blank", e.getMessage()); } } /** * Test method for * {@link org.identityconnectors.dbcommon.LocalizedAssert#assertBlank(java.lang.String, java.lang.String)} * . */ @Test public final void testAsserBlank() { String os = testee.assertBlank(null, "os"); Assert.assertNull(os); os = testee.assertBlank("", "os"); Assert.assertEquals("", os); try { os = testee.assertBlank("Some os", "os"); Assert.fail("Must fail for non blank argument"); } catch (RuntimeException e) { Assert.assertEquals("Argument [os] must be blank", e.getMessage()); } } /** Test of {@link LocalizedAssert#LocalizedAssert(ConnectorMessages)} */ @Test public void testCreate() { new LocalizedAssert(new TestConnectorMessages()); try { new LocalizedAssert(null); Assert.fail("Must fail for null ConnectorMessages"); } catch (RuntimeException e) { // emptyS } } /** * test method */ @Test public void testLocalizeArgumentNames() { LocalizedAssert la = new LocalizedAssert(new TestConnectorMessages(), true); try { // Small hack, we do not create new TestMessages with dummy argument // name, use assert.blank as argument name la.assertNotBlank("", "assert.blank"); Assert.fail("Must fail for blank String"); } catch (RuntimeException e) { Assert.assertEquals("Argument [Argument [{0}] must be blank] cannot be blank", e .getMessage()); } } }