Author: jbellis
Date: Wed Jun  8 13:16:34 2011
New Revision: 1133390

URL: http://svn.apache.org/viewvc?rev=1133390&view=rev
Log:
add EC2SnitchTest.java

Added:
    
cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/locator/EC2SnitchTest.java

Added: 
cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/locator/EC2SnitchTest.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/locator/EC2SnitchTest.java?rev=1133390&view=auto
==============================================================================
--- 
cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/locator/EC2SnitchTest.java
 (added)
+++ 
cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/locator/EC2SnitchTest.java
 Wed Jun  8 13:16:34 2011
@@ -0,0 +1,51 @@
+package org.apache.cassandra.locator;
+
+import static org.junit.Assert.assertEquals;
+
+import java.io.IOException;
+import java.net.InetAddress;
+import java.util.Map;
+
+import org.apache.cassandra.config.ConfigurationException;
+import org.apache.cassandra.gms.ApplicationState;
+import org.apache.cassandra.gms.Gossiper;
+import org.apache.cassandra.gms.VersionedValue;
+import org.apache.cassandra.service.StorageService;
+import org.junit.Test;
+
+public class EC2SnitchTest
+{
+
+    private class TestEC2Snitch extends Ec2Snitch
+    {
+        public TestEC2Snitch() throws IOException, ConfigurationException
+        {
+            super();
+        }
+
+        @Override
+        String awsApiCall(String url) throws IOException, 
ConfigurationException
+        {
+            return "us-east-1d";
+        }
+    }
+
+    @Test
+    public void testRac() throws IOException, ConfigurationException
+    {
+        Ec2Snitch snitch = new TestEC2Snitch();
+        InetAddress local = InetAddress.getByName("127.0.0.1");
+        InetAddress nonlocal = InetAddress.getByName("127.0.0.7");
+        
+        Gossiper.instance.addSavedEndpoint(nonlocal);
+        Map<ApplicationState,VersionedValue> stateMap = 
Gossiper.instance.getEndpointStateForEndpoint(nonlocal).getApplicationStateMap();
+        stateMap.put(ApplicationState.DC, 
StorageService.instance.valueFactory.datacenter("us-west"));
+        stateMap.put(ApplicationState.RACK, 
StorageService.instance.valueFactory.datacenter("1a"));
+        
+        assertEquals("us-west", snitch.getDatacenter(nonlocal));
+        assertEquals("1a", snitch.getRack(nonlocal));
+        
+        assertEquals("us-east", snitch.getDatacenter(local));
+        assertEquals("1d", snitch.getRack(local));
+    }
+}


Reply via email to