/*
* Copyright (c) 2015 EMC Corporation
* All Rights Reserved
*/
package com.emc.storageos.db.common.schema;
import java.util.List;
import java.util.Map;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import com.emc.storageos.db.client.model.Cf;
import com.emc.storageos.db.client.model.DataObject;
import com.emc.storageos.db.client.model.Name;
public class DuplicatedFieldsTest {
private DbSchemas dbSchemas;
private final int DUPLICATE_SCHEMA_COUNT = 1;
private final String DUPLICATE_SCHEMA_NAME = "Dummy";
@Before
public void setup() {
dbSchemas = new DbSchemas();
}
@Test
public void testDuplicateField() {
DbSchema schema = new DbSchema(DuplicateFieldObject.class);
dbSchemas.addSchema(schema);
boolean hasDuplicateColumn = dbSchemas.hasDuplicateField();
Assert.assertTrue(hasDuplicateColumn);
Map<String, List<FieldInfo>> schemaDuplicateColumns = dbSchemas.getDuplicateFields();
Assert.assertEquals(DUPLICATE_SCHEMA_COUNT, schemaDuplicateColumns.size());
Assert.assertTrue(schemaDuplicateColumns.containsKey(DUPLICATE_SCHEMA_NAME));
}
@Test
public void testNoDuplicateField() {
DbSchema schema = new DbSchema(NoDuplicateFieldObject.class);
dbSchemas.addSchema(schema);
boolean hasDuplicateColumn = dbSchemas.hasDuplicateField();
Assert.assertFalse(hasDuplicateColumn);
}
@SuppressWarnings("serial")
@Cf("Dummy")
private static class DuplicateFieldObject extends DataObject {
private String dummy;
@Name("status")
public String getDummy() {
return dummy;
}
public void setDummy(String dummy) {
this.dummy = dummy;
}
}
@SuppressWarnings("serial")
@Cf("Dummy")
private static class NoDuplicateFieldObject extends DataObject {
}
}