From 430746c8f6080b9009c306f950954eead3c76b98 Mon Sep 17 00:00:00 2001
From: kenneth_suter <kenneth_suter@localhost>
Date: Fri, 17 Aug 2007 21:57:02 +0000
Subject: [PATCH] - Restored running of messages tests to precommit target - Fixed broken SeverityTest - Added test to check for duplicate keys in messages properties files

---
 opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/messages/MessageDescriptorRegistryTest.java |    2 
 opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/messages/PropertiesFilesTest.java           |  104 +++++++++++++++++
 opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/messages/SeverityTest.java                  |  219 ++++++++++++++++++------------------
 opendj-sdk/opends/build.xml                                                                                 |    4 
 opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/messages/CategoryTest.java                  |    2 
 opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/messages/MessageTest.java                   |    2 
 6 files changed, 217 insertions(+), 116 deletions(-)

diff --git a/opendj-sdk/opends/build.xml b/opendj-sdk/opends/build.xml
index fa45d3c..d408843 100644
--- a/opendj-sdk/opends/build.xml
+++ b/opendj-sdk/opends/build.xml
@@ -1093,7 +1093,7 @@
     </condition>
 
     <!-- do not run tests dependent upon creation of the .zip file -->
-    <condition property="test.packages" value="org.opends.server.*">
+    <condition property="test.packages" value="org.opends.server.*,org.opends.messages.*">
       <and>
         <not>
           <or>
@@ -1109,7 +1109,7 @@
     </condition>
  
     <!-- run tests dependent upon creation of the .zip file -->
-    <condition property="test.packages" value="org.opends.server.*,org.opends.quicksetup.*">
+    <condition property="test.packages" value="org.opends.server.*,org.opends.messages.*,org.opends.quicksetup.*">
       <and>
         <not>
           <or>
diff --git a/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/messages/CategoryTest.java b/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/messages/CategoryTest.java
index 6bc6b50..70c8f83 100644
--- a/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/messages/CategoryTest.java
+++ b/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/messages/CategoryTest.java
@@ -34,7 +34,7 @@
  * Category Tester.
  *
  */
-public class CategoryTest
+public class CategoryTest extends MessagesTestCase
 {
 
     @DataProvider(name = "messageDescriptors")
diff --git a/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/messages/MessageDescriptorRegistryTest.java b/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/messages/MessageDescriptorRegistryTest.java
index 49aec35..aebf0ad 100644
--- a/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/messages/MessageDescriptorRegistryTest.java
+++ b/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/messages/MessageDescriptorRegistryTest.java
@@ -45,7 +45,7 @@
  * MessageDescriptorRegistry Tester.
  *
  */
-public class MessageDescriptorRegistryTest
+public class MessageDescriptorRegistryTest extends MessagesTestCase
 {
 
   @DataProvider(name = "message descriptors")
diff --git a/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/messages/MessageTest.java b/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/messages/MessageTest.java
index 31ab31c..bd5ea25 100644
--- a/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/messages/MessageTest.java
+++ b/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/messages/MessageTest.java
@@ -42,7 +42,7 @@
 /**
  * Message Tester.
  */
-public class MessageTest extends DirectoryServerTestCase {
+public class MessageTest extends MessagesTestCase {
 
   /** Locale for accessing a pseudo localized test messages file. */
   private static final Locale TEST_LOCALE = Locale.CHINA;
diff --git a/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/messages/PropertiesFilesTest.java b/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/messages/PropertiesFilesTest.java
new file mode 100644
index 0000000..7d46180
--- /dev/null
+++ b/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/messages/PropertiesFilesTest.java
@@ -0,0 +1,104 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * You can obtain a copy of the license at
+ * trunk/opends/resource/legal-notices/OpenDS.LICENSE
+ * or https://OpenDS.dev.java.net/OpenDS.LICENSE.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at
+ * trunk/opends/resource/legal-notices/OpenDS.LICENSE.  If applicable,
+ * add the following below this CDDL HEADER, with the fields enclosed
+ * by brackets "[]" replaced with your own identifying information:
+ *      Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ *
+ *
+ *      Portions Copyright 2007 Sun Microsystems, Inc.
+ */
+
+package org.opends.messages;
+
+import org.opends.server.TestCaseUtils;
+import static org.testng.Assert.*;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+
+import java.io.File;
+import java.io.FilenameFilter;
+import java.io.BufferedReader;
+import java.io.FileReader;
+import java.io.IOException;
+import java.util.Set;
+import java.util.HashSet;
+
+/**
+ * Category Tester.
+ *
+ */
+public class PropertiesFilesTest extends MessagesTestCase {
+
+  @DataProvider(name = "messagePropertiesFiles")
+  public Object[][] getMessagePropertiesFiles() {
+    File propFilesDir = getPropertiesFilesDirectory();
+    assertTrue(propFilesDir.exists(), "Directory " +
+            propFilesDir.getAbsolutePath() + " does not exist");
+    File[] fileList = propFilesDir.listFiles(new FilenameFilter() {
+      public boolean accept(File dir, String name) {
+        return name.endsWith(".properties");
+      }
+    });
+    Object[][] propFiles = new Object[fileList.length][1];
+    for (int i = 0; i < propFiles.length; i++) {
+      propFiles[i] = new Object[] { fileList[i] };
+    }
+    return propFiles;
+  }
+
+  /**
+   * Tests that a properties file does not have duplicate keys.  This
+   * is not enforced by GenerateMessageFile because it uses
+   * java.util.Properties to load and process the files which ignores
+   * duplicate keys.
+   *
+   * @param propertiesFile file
+   * @throws IOException if problems reading the file
+   */
+  @Test(dataProvider = "messagePropertiesFiles")
+  public void testForDuplicateKeys(File propertiesFile) throws IOException {
+    Set<String> keys = new HashSet<String>();
+    BufferedReader reader = new BufferedReader(new FileReader(propertiesFile));
+    String prevLine = null;
+    String line;
+    while (null != (line = reader.readLine())) {
+      if (!(prevLine == null || prevLine.endsWith("\\")) && // not a value continuation
+          !(line.startsWith("#")) && // not a comment
+          (line.indexOf('=') > 0)) { // defines a key
+        String key = line.substring(0, line.indexOf('='));
+        assertFalse(keys.contains(key),
+                "Key " + key + " is defined multiple places in " +
+                        propertiesFile.getName());
+        keys.add(key);
+      }
+      prevLine = line;
+    }
+
+  }
+
+  private File getPropertiesFilesDirectory() {
+    String buildRoot = System.getProperty(TestCaseUtils.PROPERTY_BUILD_ROOT);
+    return new File(buildRoot,
+            "src" + File.separator +
+            "messages" + File.separator +
+            "messages");
+  }
+
+}
diff --git a/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/messages/SeverityTest.java b/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/messages/SeverityTest.java
index c6a1c00..fd4b070 100644
--- a/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/messages/SeverityTest.java
+++ b/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/messages/SeverityTest.java
@@ -24,7 +24,7 @@
  *
  *      Portions Copyright 2006-2007 Sun Microsystems, Inc.
  */
- 
+
 package org.opends.messages;
 
 import static org.testng.Assert.*;
@@ -34,129 +34,126 @@
 
 /**
  * Severity Tester.
- *
  */
-public class SeverityTest
-{
+public class SeverityTest extends MessagesTestCase {
 
-    @DataProvider(name = "severities")
-    public Object[][] getSeverities() {
-      return new Object[][] {
-              { Severity.DEBUG },
-              { Severity.FATAL_ERROR },
-              { Severity.INFORMATION },
-              { Severity.MILD_ERROR },
-              { Severity.MILD_WARNING },
-              { Severity.NOTICE },
-              { Severity.SEVERE_ERROR },
-              { Severity.SEVERE_WARNING }
-      };
-    }
+  @DataProvider(name = "messageDescriptors")
+  public Object[][] getMessageDescriptors() {
+    return new Object[][]{
+            {CoreMessages.ERR_ABANDON_OP_NO_SUCH_OPERATION}
+    };
+  }
 
-    @Test(dataProvider = "severities")
-    public void testGetPropertyKeyFormSet(Severity severity)
-    {
-      Set s = Severity.getPropertyKeyFormSet();
-      assertTrue(s.contains(severity));
-    }
+  @DataProvider(name = "severities")
+  public Object[][] getSeverities() {
+    return new Object[][]{
+            {Severity.DEBUG},
+            {Severity.FATAL_ERROR},
+            {Severity.INFORMATION},
+            {Severity.MILD_ERROR},
+            {Severity.MILD_WARNING},
+            {Severity.NOTICE},
+            {Severity.SEVERE_ERROR},
+            {Severity.SEVERE_WARNING}
+    };
+  }
 
-    @DataProvider(name = "severities and masks")
-    public Object[][] getSeveritiesAndMasks() {
-      return new Object[][] {
-              { Severity.DEBUG, 0x00060000 },
-              { Severity.FATAL_ERROR, 0x00050000 },
-              { Severity.INFORMATION, 0x00000000 },
-              { Severity.MILD_ERROR, 0x00030000 },
-              { Severity.MILD_WARNING, 0x00010000 },
-              { Severity.NOTICE, 0x00070000 },
-              { Severity.SEVERE_ERROR, 0x00040000 },
-              { Severity.SEVERE_WARNING, 0x00020000 }
-      };
-    }
+  @DataProvider(name = "severities and pk names")
+  public Object[][] getSeveritiesAndPropertyKeyNames() {
+    return new Object[][]{
+            {Severity.DEBUG, "DEBUG"},
+            {Severity.FATAL_ERROR, "FATAL_ERR"},
+            {Severity.INFORMATION, "INFO"},
+            {Severity.MILD_ERROR, "MILD_ERR"},
+            {Severity.MILD_WARNING, "MILD_WARN"},
+            {Severity.NOTICE, "NOTICE"},
+            {Severity.SEVERE_ERROR, "SEVERE_ERR"},
+            {Severity.SEVERE_WARNING, "SEVERE_WARN"}
+    };
+  }
 
-    @Test(dataProvider = "severities and masks")
-    public void testParseMask(Severity s, int mask) {
-      assertEquals(Severity.parseMask(mask), s);
-    }
+  @DataProvider(name = "severities and md names")
+  public Object[][] getSeveritiesAndMessageDescriptorNames() {
+    return new Object[][]{
+            {Severity.DEBUG, "DEBUG"},
+            {Severity.FATAL_ERROR, "ERR"},
+            {Severity.INFORMATION, "INFO"},
+            {Severity.MILD_ERROR, "ERR"},
+            {Severity.MILD_WARNING, "WARN"},
+            {Severity.NOTICE, "NOTE"},
+            {Severity.SEVERE_ERROR, "ERR"},
+            {Severity.SEVERE_WARNING, "WARN"}
+    };
+  }
 
-    @DataProvider(name = "severities and strings")
-    public Object[][] getSeveritiesAndStrings() {
-      return new Object[][] {
-              { Severity.DEBUG, "DEBUG" },
-              { Severity.FATAL_ERROR, "FATAL_ERR" },
-              { Severity.FATAL_ERROR, "FATAL_ERROR" },
-              { Severity.INFORMATION, "INFO" },
-              { Severity.INFORMATION, "INFORMATION" },
-              { Severity.MILD_ERROR, "MILD_ERR" },
-              { Severity.MILD_ERROR, "MILD_ERROR" },
-              { Severity.MILD_WARNING, "MILD_WARN" },
-              { Severity.MILD_WARNING, "MILD_WARNING" },
-              { Severity.NOTICE, "NOTICE" },
-              { Severity.SEVERE_ERROR, "SEVERE_ERR" },
-              { Severity.SEVERE_ERROR, "SEVERE_ERROR" },
-              { Severity.SEVERE_WARNING, "SEVERE_WARN" },
-              { Severity.SEVERE_WARNING, "SEVERE_WARNING" }
-      };
-    }
+  @DataProvider(name = "severities and masks")
+  public Object[][] getSeveritiesAndMasks() {
+    return new Object[][]{
+            {Severity.DEBUG, 0x00060000},
+            {Severity.FATAL_ERROR, 0x00050000},
+            {Severity.INFORMATION, 0x00000000},
+            {Severity.MILD_ERROR, 0x00030000},
+            {Severity.MILD_WARNING, 0x00010000},
+            {Severity.NOTICE, 0x00070000},
+            {Severity.SEVERE_ERROR, 0x00040000},
+            {Severity.SEVERE_WARNING, 0x00020000}
+    };
+  }
 
-    @Test(dataProvider = "severities and strings")
-    public void testParseString(Severity sev, String s) {
-      assertEquals(Severity.parseString(s), sev);
-    }
+  @DataProvider(name = "severities and strings")
+  public Object[][] getSeveritiesAndStrings() {
+    return new Object[][]{
+            {Severity.DEBUG, "DEBUG"},
+            {Severity.FATAL_ERROR, "FATAL_ERR"},
+            {Severity.FATAL_ERROR, "FATAL_ERROR"},
+            {Severity.INFORMATION, "INFO"},
+            {Severity.INFORMATION, "INFORMATION"},
+            {Severity.MILD_ERROR, "MILD_ERR"},
+            {Severity.MILD_ERROR, "MILD_ERROR"},
+            {Severity.MILD_WARNING, "MILD_WARN"},
+            {Severity.MILD_WARNING, "MILD_WARNING"},
+            {Severity.NOTICE, "NOTICE"},
+            {Severity.SEVERE_ERROR, "SEVERE_ERR"},
+            {Severity.SEVERE_ERROR, "SEVERE_ERROR"},
+            {Severity.SEVERE_WARNING, "SEVERE_WARN"},
+            {Severity.SEVERE_WARNING, "SEVERE_WARNING"}
+    };
+  }
 
-    @DataProvider(name = "messageDescriptors")
-    public Object[][] getMessageDescriptors() {
-      return new Object[][] {
-              {CoreMessages.ERR_ABANDON_OP_NO_SUCH_OPERATION}
-      };
-    }
+  @Test(dataProvider = "severities and pk names")
+  public void testGetPropertyKeyFormSet(Severity severity, String name) {
+    Set<String> s = Severity.getPropertyKeyFormSet();
+    assertTrue(s.contains(name));
+  }
 
-    @Test(dataProvider = "messageDescriptors")
-    public void testParseMessageId(MessageDescriptor md) {
-      assertEquals(Severity.parseMessageId(md.getId()), md.getSeverity());
-    }
+  @Test(dataProvider = "severities and masks")
+  public void testParseMask(Severity s, int mask) {
+    assertEquals(Severity.parseMask(mask), s);
+  }
 
-    @Test(dataProvider = "severities and masks")
-    public void testGetMask(Severity s, int mask) {
-      assertEquals(s.getMask(), mask);
-    }
+  @Test(dataProvider = "severities and strings")
+  public void testParseString(Severity sev, String s) {
+    assertEquals(Severity.parseString(s), sev);
+  }
 
-    @DataProvider(name = "severities and md names")
-    public Object[][] getSeveritiesAndMessageDescriptorNames() {
-      return new Object[][] {
-              { Severity.DEBUG, "DEBUG" },
-              { Severity.FATAL_ERROR, "ERR" },
-              { Severity.INFORMATION, "INFO" },
-              { Severity.MILD_ERROR, "ERR" },
-              { Severity.MILD_WARNING, "WARN" },
-              { Severity.NOTICE, "NOTE" },
-              { Severity.SEVERE_ERROR, "ERR" },
-              { Severity.SEVERE_WARNING, "WARN" }
-      };
-    }
+  @Test(dataProvider = "messageDescriptors")
+  public void testParseMessageId(MessageDescriptor md) {
+    assertEquals(Severity.parseMessageId(md.getId()), md.getSeverity());
+  }
 
-    @Test(dataProvider = "severities and md names")
-    public void testMessageDesciptorName(Severity s, String name) {
-      assertEquals(s.messageDesciptorName(), name);
-    }
+  @Test(dataProvider = "severities and masks")
+  public void testGetMask(Severity s, int mask) {
+    assertEquals(s.getMask(), mask);
+  }
 
-    @DataProvider(name = "severities and pk names")
-    public Object[][] getSeveritiesAndPropertyKeyNames() {
-      return new Object[][] {
-              { Severity.DEBUG, "DEBUG" },
-              { Severity.FATAL_ERROR, "FATAL_ERR" },
-              { Severity.INFORMATION, "INFO" },
-              { Severity.MILD_ERROR, "MILD_ERR" },
-              { Severity.MILD_WARNING, "MILD_WARN" },
-              { Severity.NOTICE, "NOTICE" },
-              { Severity.SEVERE_ERROR, "SEVERE_ERR" },
-              { Severity.SEVERE_WARNING, "SEVERE_WARN" }
-      };
-    }
+  @Test(dataProvider = "severities and md names")
+  public void testMessageDesciptorName(Severity s, String name) {
+    assertEquals(s.messageDesciptorName(), name);
+  }
 
-    @DataProvider(name = "severities and pk names")
-    public void testPropertyKeyFormName(Severity sev, String s) {
-      assertEquals(sev.propertyKeyFormName(), s);
-    }
+  @Test(dataProvider = "severities and pk names")
+  public void testPropertyKeyFormName(Severity sev, String s) {
+    assertEquals(sev.propertyKeyFormName(), s);
+  }
 
 }

--
Gitblit v1.10.0