package org.ovirt.engine.ui.common.utils; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import java.util.List; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.junit.MockitoJUnitRunner; import org.ovirt.engine.ui.common.utils.BaseDynamicMessages.DynamicMessageKey; @RunWith(MockitoJUnitRunner.class) public class BaseDynamicMessagesTest { BaseDynamicMessages testMessages; @Before public void setUp() throws Exception { testMessages = new BaseDynamicMessages(null); } @Test public void getPlaceHolderListTest1() { String testMessage = "This is a test if {0} can actually work out {1}"; //$NON-NLS-1$ List<Integer> result = testMessages.getPlaceHolderList(testMessage); assertEquals("Result should have 2 items", 2, result.size()); //$NON-NLS-1$ assertEquals("index 0 should be 0", (Integer) 0, result.get(0)); //$NON-NLS-1$ } @Test public void getPlaceHolderListTest2() { String testMessage = "This is a test if {0} can actually work out {1}, {0}, {1}, {1}"; //$NON-NLS-1$ List<Integer> result = testMessages.getPlaceHolderList(testMessage); assertEquals("Result should have 2 items", 2, result.size()); //$NON-NLS-1$ assertEquals("index 0 should be 0", (Integer) 0, result.get(0)); //$NON-NLS-1$ assertEquals("index 1 should be 1", (Integer) 1, result.get(1)); //$NON-NLS-1$ } @Test public void getPlaceHolderListTest3OutofOrder() { String testMessage = "This is {3} a {4} test {1} if {0} can actually work out {2}"; //$NON-NLS-1$ List<Integer> result = testMessages.getPlaceHolderList(testMessage); assertEquals("Result should have 5 items", 5, result.size()); //$NON-NLS-1$ assertEquals("index 0 should be 0", (Integer) 0, result.get(0)); //$NON-NLS-1$ assertEquals("index 1 should be 1", (Integer) 1, result.get(1)); //$NON-NLS-1$ assertEquals("index 2 should be 2", (Integer) 2, result.get(2)); //$NON-NLS-1$ assertEquals("index 3 should be 3", (Integer) 3, result.get(3)); //$NON-NLS-1$ assertEquals("index 4 should be 4", (Integer) 4, result.get(4)); //$NON-NLS-1$ } @Test(expected = IllegalArgumentException.class) public void getPlaceHolderListTestInvalidWithGap() { String testMessage = "This is a test if {0} can actually work out {2}"; //$NON-NLS-1$ testMessages.getPlaceHolderList(testMessage); fail("Should not get here"); //$NON-NLS-1$ } @Test(expected = IllegalArgumentException.class) public void getPlaceHolderListTestInvalidWithGap2() { String testMessage = "This is {3} a {4} test if {0} can actually work out {2}"; //$NON-NLS-1$ testMessages.getPlaceHolderList(testMessage); fail("Should not get here"); //$NON-NLS-1$ } @Test public void getPlaceHolderListTestNoPlaceHolder() { String testMessage = "This is a test without place holders"; //$NON-NLS-1$ List<Integer> result = testMessages.getPlaceHolderList(testMessage); assertTrue("Result should be empty", result.isEmpty()); //$NON-NLS-1$ } @Test public void formatStringTest() { testMessages.addFallback(DynamicMessageKey.VERSION_ABOUT, "This is version about: {0}"); //$NON-NLS-1$ String result = testMessages.formatString(DynamicMessageKey.VERSION_ABOUT, "1.1.1"); //$NON-NLS-1$ assertNotNull("There should be a result"); //$NON-NLS-1$ assertEquals("Result should be 'This is version about: 1.1.1'", //$NON-NLS-1$ "This is version about: 1.1.1", result); //$NON-NLS-1$ } @Test public void formatStringTest2() { testMessages.addFallback(DynamicMessageKey.VERSION_ABOUT, "This is version about: {0}.{1}.{2}"); //$NON-NLS-1$ String result = testMessages.formatString(DynamicMessageKey.VERSION_ABOUT, "1", "1", "1"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ assertNotNull("There should be a result"); //$NON-NLS-1$ assertEquals("Result should be 'This is version about: 1.1.1'", //$NON-NLS-1$ "This is version about: 1.1.1", result); //$NON-NLS-1$ } @Test public void formatStringTest3() { testMessages.addFallback(DynamicMessageKey.VERSION_ABOUT, "This is version about: {0}"); //$NON-NLS-1$ String result = testMessages.formatString(DynamicMessageKey.VERSION_ABOUT, "1.1.1", "2.2.2"); //$NON-NLS-1$ //$NON-NLS-2$ assertNotNull("There should be a result"); //$NON-NLS-1$ assertEquals("Result should be 'This is version about: 1.1.1'", //$NON-NLS-1$ "This is version about: 1.1.1", result); //$NON-NLS-1$ } @Test public void formatStringTest4() { testMessages.addFallback(DynamicMessageKey.VERSION_ABOUT, "This is version about: {0}.{1}.{0}"); //$NON-NLS-1$ String result = testMessages.formatString(DynamicMessageKey.VERSION_ABOUT, "1", "2", "3"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ assertNotNull("There should be a result"); //$NON-NLS-1$ assertEquals("Result should be 'This is version about: 1.1.1'", //$NON-NLS-1$ "This is version about: 1.2.1", result); //$NON-NLS-1$ } @Test(expected = IllegalArgumentException.class) public void formatStringTestNotEnoughParams() { testMessages.addFallback(DynamicMessageKey.VERSION_ABOUT, "This is version about: {0}.{1}.{2}"); //$NON-NLS-1$ testMessages.formatString(DynamicMessageKey.VERSION_ABOUT, "1.1.1"); //$NON-NLS-1$ fail("Should not get here"); //$NON-NLS-1$ } }