/*
* Copyright (c) 2008-2012 EMC Corporation
* All Rights Reserved
*/
package com.emc.storageos.api.service;
import com.emc.storageos.db.client.util.DefaultNameGenerator;
import org.junit.Assert;
import org.junit.Test;
public class DefaultNameGeneratorTest {
@Test
public void testTenantNameShorterThanResourceName() {
String expected;
String actual;
DefaultNameGenerator nameGenerator = new DefaultNameGenerator();
actual = nameGenerator.generate("GMC", "2012 Q3", "urn:storageos:Volume:d683ac10-5d2c-4462-9c79-6156cdaa74e7:", '_', 255);
expected = "GMC_2012Q3_d683ac10-5d2c-4462-9c79-6156cdaa74e7";
Assert.assertEquals(expected, actual);
actual = nameGenerator.generate("GMC", " QuarterlyReport", "urn:storageos:TenantOrg:8d998de4-507d-448d-bbb6-6d4f3abe49b6:", '/',
255);
expected = "GMC/QuarterlyReport/8d998de4-507d-448d-bbb6-6d4f3abe49b6";
Assert.assertEquals(expected, actual);
actual = nameGenerator.generate("GMC", " This Name *()&& Shouldn't Have Special Characters",
"urn:storageos:TenantOrg:8d998de4-507d-448d-bbb6-6d4f3abe49b6:", '/', 255);
expected = "GMC/ThisNameShouldntHaveSpecialCharacters/8d998de4-507d-448d-bbb6-6d4f3abe49b6";
Assert.assertEquals(expected, actual);
actual = nameGenerator.generate("GMC", "abcdefghijklmnopqrstuvwxyz",
"urn:storageos:TenantOrg:8d998de4-507d-448d-bbb6-6d4f3abe49b6:", '_', 64);
expected = "GMC_abcdefghijklmnopqrstuvw_8d998de4-507d-448d-bbb6-6d4f3abe49b6";
Assert.assertEquals(expected, actual);
}
@Test
public void testTenantNameLongerThanResourceName() {
String expected;
String actual;
DefaultNameGenerator nameGenerator = new DefaultNameGenerator();
actual = nameGenerator.generate("tenant-abcdefghijklmnopqrstuvwxyz", "volume",
"urn:storageos:TenantOrg:8d998de4-507d-448d-bbb6-6d4f3abe49b6:", '_', 64);
expected = "tenantabcdefghijklmn_volume_8d998de4-507d-448d-bbb6-6d4f3abe49b6";
Assert.assertEquals(expected, actual);
}
@Test
public void testTenantNameSameLengthAsResourceName() {
String expected;
String actual;
DefaultNameGenerator nameGenerator = new DefaultNameGenerator();
actual = nameGenerator.generate("tenant-abcdefghijklmnopqrstuvwxyz", "volume-abcdefghijklmnopqrstuvwxyz",
"urn:storageos:TenantOrg:8d998de4-507d-448d-bbb6-6d4f3abe49b6:", '_', 64);
expected = "tenantabcdefg_volumeabcdefg_8d998de4-507d-448d-bbb6-6d4f3abe49b6";
Assert.assertEquals(expected, actual);
}
@Test
public void testTenantNameAndResourceNameLongerThanMaxSize() {
String expected;
String actual;
DefaultNameGenerator nameGenerator = new DefaultNameGenerator();
actual = nameGenerator.generate("tenant-abcdefghijklmnopqrstuvwxyz0000000000000000000000000000000000000000000",
"MSTMT_I_1016_100_1694066731_347033891PI3_596075894_V725287082_23sadfadfasdfasdfadsfadfadsfasdfasdf",
"urn:storageos:TenantOrg:8d998de4-507d-448d-bbb6-6d4f3abe49b6:", '_', 64);
expected = "tenantabcdefg_MSTMTI1016100_8d998de4-507d-448d-bbb6-6d4f3abe49b6";
Assert.assertEquals(expected, actual);
actual = nameGenerator.generate("tenant-abcdefghijklmnopqrstuvwxyz0000000000000000000000000000000000000000000", "MSTMT_I_10",
"urn:storageos:TenantOrg:8d998de4-507d-448d-bbb6-6d4f3abe49b6:", '_', 64);
expected = "tenantabcdefg_MSTMTI10_8d998de4-507d-448d-bbb6-6d4f3abe49b6";
Assert.assertEquals(expected, actual);
actual = nameGenerator.generate("tenantA",
"MSTMT_I_1016_100_1694066731_347033891PI3_596075894_V725287082_23sadfadfasdfasdfadsfadfadsfasdfasdf",
"urn:storageos:TenantOrg:8d998de4-507d-448d-bbb6-6d4f3abe49b6:", '_', 64);
expected = "tenantA_MSTMTI1016100_8d998de4-507d-448d-bbb6-6d4f3abe49b6";
Assert.assertEquals(expected, actual);
}
@Test
public void testTenantNameLengthEqResourceNameLength() {
String expected;
String actual;
DefaultNameGenerator nameGenerator = new DefaultNameGenerator();
actual = nameGenerator.generate("ProviderTenant", "VNXBlockSanity",
"urn:storageos:ExportGroup:8d998de4-507d-448d-bbb6-6d4f3abe49b6:", '_', 60);
expected = "ProviderTen_VNXBlockSan_8d998de4-507d-448d-bbb6-6d4f3abe49b6";
Assert.assertEquals(expected, actual);
Assert.assertTrue(actual.length() <= 60);
}
}