/** * Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.strata.collect; import static com.opengamma.strata.collect.TestHelper.assertUtilityClass; import static org.testng.Assert.assertEquals; import java.util.Objects; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; /** * Test Messages. */ @Test public class MessagesTest { @DataProvider(name = "formatMessageSingle") Object[][] data_formatMessageSingle() { return new Object[][] { // null template {null, null, "", " - [null]"}, {null, "", "", " - []"}, // null in array {"", null, "", " - [null]"}, {"{}", null, "null", ""}, {"{}{}", null, "null{}", ""}, {"{} and {}", null, "null and {}", ""}, // empty string in array {"", "", "", " - []"}, {"{}", "", "", ""}, {"{}{}", "", "{}", ""}, {"{} and {}", "", " and {}", ""}, // main tests {"{}", 67, "67", ""}, {"{}{}", 67, "67{}", ""}, {"{} and {}", 67, "67 and {}", ""}, }; } @Test(dataProvider = "formatMessageSingle") public void test_formatMessageSingle(String template, Object arg, String expMain, String expExcess) { assertEquals(Messages.format(template, arg), expMain + expExcess); } @Test(dataProvider = "formatMessageSingle") public void test_formatMessageSingle_prefix(String template, Object arg, String expMain, String expExcess) { assertEquals(Messages.format("::" + Objects.toString(template, ""), arg), "::" + expMain + expExcess); } @Test(dataProvider = "formatMessageSingle") public void test_formatMessageSingle_suffix(String template, Object arg, String expMain, String expExcess) { assertEquals(Messages.format(Objects.toString(template, "") + "@@", arg), expMain + "@@" + expExcess); } @Test(dataProvider = "formatMessageSingle") public void test_formatMessageSingle_prefixSuffix(String template, Object arg, String expMain, String expExcess) { assertEquals(Messages.format("::" + Objects.toString(template, "") + "@@", arg), "::" + expMain + "@@" + expExcess); } //------------------------------------------------------------------------- @DataProvider(name = "formatMessage") Object[][] data_formatMessage() { return new Object[][] { // null template {null, null, "", ""}, {null, new Object[] {}, "", ""}, {null, new Object[] {null}, "", " - [null]"}, {null, new Object[] {67}, "", " - [67]"}, // null array {"", null, "", ""}, {"{}", null, "{}", ""}, {"{}{}", null, "{}{}", ""}, {"{} and {}", null, "{} and {}", ""}, // null in array {"", new Object[] {null}, "", " - [null]"}, {"{}", new Object[] {null}, "null", ""}, {"{}{}", new Object[] {null}, "null{}", ""}, {"{} and {}", new Object[] {null}, "null and {}", ""}, // main tests {"", new Object[] {}, "", ""}, {"{}", null, "{}", ""}, {"{}", new Object[] {}, "{}", ""}, {"{}", new Object[] {67}, "67", ""}, {"{}", new Object[] {67, 78}, "67", " - [78]"}, {"{}", new Object[] {67, 78, 89}, "67", " - [78, 89]"}, {"{}", new Object[] {67, 78, 89, 90}, "67", " - [78, 89, 90]"}, {"{}{}", null, "{}{}", ""}, {"{}{}", new Object[] {}, "{}{}", ""}, {"{}{}", new Object[] {67}, "67{}", ""}, {"{}{}", new Object[] {67, 78}, "6778", ""}, {"{}{}", new Object[] {67, 78, 89}, "6778", " - [89]"}, {"{}{}", new Object[] {67, 78, 89, 90}, "6778", " - [89, 90]"}, {"{} and {}", null, "{} and {}", ""}, {"{} and {}", new Object[] {}, "{} and {}", ""}, {"{} and {}", new Object[] {67}, "67 and {}", ""}, {"{} and {}", new Object[] {67, 78}, "67 and 78", ""}, {"{} and {}", new Object[] {67, 78, 89}, "67 and 78", " - [89]"}, {"{} and {}", new Object[] {67, 78, 89, 90}, "67 and 78", " - [89, 90]"}, {"{}, {} and {}", new Object[] {}, "{}, {} and {}", ""}, {"{}, {} and {}", new Object[] {67}, "67, {} and {}", ""}, {"{}, {} and {}", new Object[] {67, 78}, "67, 78 and {}", ""}, {"{}, {} and {}", new Object[] {67, 78, 89}, "67, 78 and 89", ""}, {"{}, {} and {}", new Object[] {67, 78, 89, 90}, "67, 78 and 89", " - [90]"}, {"ABC", new Object[] {}, "ABC", ""}, {"Message {}, {}, {}", new Object[] {"A", 2, 3.}, "Message A, 2, 3.0", ""}, {"Message {}, {} blah", new Object[] {"A", 2, 3.}, "Message A, 2 blah", " - [3.0]"}, {"Message {}, {}", new Object[] {"A", 2, 3., true}, "Message A, 2", " - [3.0, true]"}, {"Message {}, {}, {}, {} blah", new Object[] {"A", 2, 3.}, "Message A, 2, 3.0, {} blah", ""}, }; } @Test(dataProvider = "formatMessage") public void test_formatMessage(String template, Object[] args, String expMain, String expExcess) { assertEquals(Messages.format(template, args), expMain + expExcess); } @Test(dataProvider = "formatMessage") public void test_formatMessage_prefix(String template, Object[] args, String expMain, String expExcess) { assertEquals(Messages.format("::" + Objects.toString(template, ""), args), "::" + expMain + expExcess); } @Test(dataProvider = "formatMessage") public void test_formatMessage_suffix(String template, Object[] args, String expMain, String expExcess) { assertEquals(Messages.format(Objects.toString(template, "") + "@@", args), expMain + "@@" + expExcess); } @Test(dataProvider = "formatMessage") public void test_formatMessage_prefixSuffix(String template, Object[] args, String expMain, String expExcess) { assertEquals(Messages.format("::" + Objects.toString(template, "") + "@@", args), "::" + expMain + "@@" + expExcess); } //------------------------------------------------------------------------- public void test_validUtilityClass() { assertUtilityClass(Messages.class); } }