/* * Copyright (c) 2014 EMC Corporation * All Rights Reserved */ package com.emc.storageos.api.service; import com.emc.storageos.db.client.util.ExportMaskNameGenerator; import org.junit.Test; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; public class ExportMaskNameGeneratorTest { private final static ExportMaskNameGenerator emg = new ExportMaskNameGenerator(); public static final int MAXLENGTH = 64; @Test public void testAllNamesProvidedShort() { String cluster = "abc"; String alternate = "zyx"; String hostname = "host123-emc-com"; String generatedName = emg.generate(cluster, hostname, alternate); assertTrue(String.format("Generated name '%s' is longer than max characters. Length is %d", generatedName, generatedName.length()), generatedName.length() <= MAXLENGTH); String expected = alternate + "_" + cluster + "_" + hostname; assertEquals(expected, generatedName); System.out.println(String.format("testAllNamesProvidedShort - Generated name '%s', length is %d", generatedName, generatedName.length())); } @Test public void testAllNamesProvidedLongClusterName() { String cluster = "abcdefghijklmnopqrstuvwxyz-abcdefghijklmnopqrstuvwxyz-abcdefghijklmnopqrstuvwxyz"; String alternate = "xyz"; String hostname = "host123"; String generatedName = emg.generate(cluster, hostname, alternate); assertTrue(String.format("Generated name '%s' is longer than max characters. Length is %d", generatedName, generatedName.length()), generatedName.length() <= MAXLENGTH); int truncate = MAXLENGTH - (hostname.length() + alternate.length() + 2); String expected = alternate + "_" + cluster.substring(0, truncate) + "_" + hostname; assertEquals(expected, generatedName); System.out.println(String.format("testAllNamesProvidedLongClusterName - Generated name '%s', length is %d", generatedName, generatedName.length())); } @Test public void testAllNamesProvidedLongAlternateName() { String cluster = "abc"; String alternate = "zyxwvutsrqponmlkjihgfedcba-zyxwvutsrqponmlkjihgfedcba-zyxwvutsrqponmlkjihgfedcba"; String hostname = "host123"; String generatedName = emg.generate(cluster, hostname, alternate); assertTrue(String.format("Generated name '%s' is longer than max characters. Length is %d", generatedName, generatedName.length()), generatedName.length() <= MAXLENGTH); int truncate = MAXLENGTH - (hostname.length() + cluster.length() + 2); String expected = alternate.substring(0, truncate) + "_" + cluster + "_" + hostname; assertEquals(expected, generatedName); System.out.println(String.format("testAllNamesProvidedLongAlternateName - Generated name '%s', length is %d", generatedName, generatedName.length())); } @Test public void testAllNamesProvidedLongHostName() { String cluster = "abc"; String alternate = "zyx"; String hostname = "host123456789012345678901234567890123456789012345678901234567890-emc-com"; String generatedName = emg.generate(cluster, hostname, alternate); assertTrue(String.format("Generated name '%s' is longer than max characters. Length is %d", generatedName, generatedName.length()), generatedName.length() <= MAXLENGTH); String expected = hostname.substring(0, MAXLENGTH); assertEquals(expected, generatedName); System.out.println(String.format("testAllNamesProvidedLongHostName - Generated name '%s', length is %d", generatedName, generatedName.length())); } @Test public void testAllNamesProvidedAllLong() { String cluster = "abcdefghijklmnopqrstuvwxyz-abcdefghijklmnopqrstuvwxyz-abcdefghijklmnopqrstuvwxyz"; String alternate = "zyxwvutsrqponmlkjihgfedcba-zyxwvutsrqponmlkjihgfedcba-zyxwvutsrqponmlkjihgfedcba"; String hostname = "host123456789012345678901234567890123456789012345678901234567890-emc-com"; String generatedName = emg.generate(cluster, hostname, alternate); assertTrue(String.format("Generated name '%s' is longer than max characters. Length is %d", generatedName, generatedName.length()), generatedName.length() <= MAXLENGTH); String expected = hostname.substring(0, MAXLENGTH); assertEquals(expected, generatedName); System.out.println(String.format("testAllNamesProvidedAllLong - Generated name '%s', length is %d", generatedName, generatedName.length())); } @Test public void testNoAlternateName() { String cluster = "abc"; String alternate = null; String hostname = "host123-emc-com"; String generatedName = emg.generate(cluster, hostname, alternate); assertTrue(String.format("testNoAlternateName - Generated name '%s' is longer than max characters. Length is %d", generatedName, generatedName.length()), generatedName.length() <= MAXLENGTH); String expected = cluster + "_" + hostname; assertEquals(expected, generatedName); System.out.println(String.format("testNoAlternateName - Generated name '%s', length is %d", generatedName, generatedName.length())); } @Test public void testNoClusterName() { String cluster = null; String alternate = "xyz"; String hostname = "host123-emc-com"; String generatedName = emg.generate(cluster, hostname, alternate); assertTrue(String.format("Generated name '%s' is longer than max characters. Length is %d", generatedName, generatedName.length()), generatedName.length() <= MAXLENGTH); String expected = alternate + "_" + hostname; assertEquals(expected, generatedName); System.out.println(String.format("testNoClusterName - Generated name '%s', length is %d", generatedName, generatedName.length())); } @Test public void testNoAlternateNameLongClusterName() { String cluster = "abcdefghijklmnopqrstuvwxyz-abcdefghijklmnopqrstuvwxyz-abcdefghijklmnopqrstuvwxyz"; String alternate = null; String hostname = "host123-emc-com"; String generatedName = emg.generate(cluster, hostname, alternate); assertTrue(String.format("Generated name '%s' is longer than max characters. Length is %d", generatedName, generatedName.length()), generatedName.length() <= MAXLENGTH); int truncate = MAXLENGTH - (hostname.length() + 1); String expected = cluster.substring(0, truncate) + "_" + hostname; assertEquals(expected, generatedName); System.out.println(String.format("testNoAlternateNameLongClusterName - Generated name '%s', length is %d", generatedName, generatedName.length())); } @Test public void testNoClusterNameLongAlternateName() { String cluster = null; String alternate = "zyxwvutsrqponmlkjihgfedcba-zyxwvutsrqponmlkjihgfedcba-zyxwvutsrqponmlkjihgfedcba"; String hostname = "host123-emc-com"; String generatedName = emg.generate(cluster, hostname, alternate); assertTrue(String.format("Generated name '%s' is longer than max characters. Length is %d", generatedName, generatedName.length()), generatedName.length() <= MAXLENGTH); int truncate = MAXLENGTH - (hostname.length() + 1); String expected = alternate.substring(0, truncate) + "_" + hostname; assertEquals(expected, generatedName); System.out.println(String.format("testNoClusterNameLongAlternateName - Generated name '%s', length is %d", generatedName, generatedName.length())); } }