You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jb...@apache.org on 2011/06/08 15:16:34 UTC

svn commit: r1133390 - /cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/locator/EC2SnitchTest.java

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));
+    }
+}