import junit.framework.TestCase;
import junit.framework.Test;
import junit.framework.TestSuite;

import java.util.List;
import java.util.Map;
import java.util.HashMap;

public class SdbDelegateTest extends TestCase {
    private SdbDelegate fixture;
    private String domainName;

    public void setUp() {
        this.fixture = new SdbDelegate();
        this.domainName = "TestDomain";
    }

    public void testCreateDomain() {
        fixture.createDomain(domainName); 
        assertTrue(fixture.listDomains().contains(domainName));
    }

    public void testDeleteDomain() {
        fixture.deleteDomain(domainName); 
        assertFalse(fixture.listDomains().contains(domainName));
    }


    public void testGetPutAttributes() {
        fixture.createDomain(domainName); 
        Map<String, String> attributes = new HashMap<String, String>();
        attributes.put("StreetAddress", "705 5th Ave");
        attributes.put("City", "Seattle");
        attributes.put("State", "WA");
        attributes.put("Zip", "98101");
        fixture.putAttributes(domainName, "TCC", attributes, true);
        Map<String, String> attributes2 = fixture.getAttributes(domainName, "TCC");
        System.out.println("Retrieved " + attributes2); 
        assertEquals(attributes, attributes2);
    }

    public static Test suite() {
        TestSuite suite = new TestSuite();
        suite.addTestSuite(SdbDelegateTest.class);
        return suite;
    }

    public static void main(String[] args) {
        junit.textui.TestRunner.run(suite());
    }
}
