License header missing in the test --David
On Wed, Jul 3, 2013 at 9:35 AM, <chipchild...@apache.org> wrote: > Updated Branches: > refs/heads/master 90a15bfff -> 141fbc7ef > > > cidr compare fixme addressed > > > Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo > Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/141fbc7e > Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/141fbc7e > Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/141fbc7e > > Branch: refs/heads/master > Commit: 141fbc7ef7a89ee1e046366f1e2e6dffbe4e5be7 > Parents: 90a15bf > Author: Daan Hoogland <d...@onecht.net> > Authored: Wed Jul 3 14:03:30 2013 +0200 > Committer: Chip Childers <chipchild...@apache.org> > Committed: Wed Jul 3 09:28:49 2013 -0400 > > ---------------------------------------------------------------------- > .../security/SecurityGroupManagerImpl.java | 13 +++- > .../security/SecurityGroupManagerImplTest.java | 62 ++++++++++++++++++++ > 2 files changed, 74 insertions(+), 1 deletion(-) > ---------------------------------------------------------------------- > > > http://git-wip-us.apache.org/repos/asf/cloudstack/blob/141fbc7e/server/src/com/cloud/network/security/SecurityGroupManagerImpl.java > ---------------------------------------------------------------------- > diff --git > a/server/src/com/cloud/network/security/SecurityGroupManagerImpl.java > b/server/src/com/cloud/network/security/SecurityGroupManagerImpl.java > index 1c189c4..ce6f8ac 100755 > --- a/server/src/com/cloud/network/security/SecurityGroupManagerImpl.java > +++ b/server/src/com/cloud/network/security/SecurityGroupManagerImpl.java > @@ -322,7 +322,18 @@ public class SecurityGroupManagerImpl extends > ManagerBase implements SecurityGro > > @Override > public int compare(String cidr1, String cidr2) { > - return cidr1.compareTo(cidr2); // FIXME > + // parse both to find significance first (low number of bits is > high) > + // if equal then just do a string compare > + if(significance(cidr1) == significance(cidr2)) { > + return cidr1.compareTo(cidr2); > + } > + else { > + return significance(cidr2) - significance(cidr1); > + } > + } > + private int significance(String cidr) > + { > + return Integer.parseInt(cidr.substring(cidr.indexOf('/')+1)); > } > > } > > http://git-wip-us.apache.org/repos/asf/cloudstack/blob/141fbc7e/server/test/com/cloud/network/security/SecurityGroupManagerImplTest.java > ---------------------------------------------------------------------- > diff --git > a/server/test/com/cloud/network/security/SecurityGroupManagerImplTest.java > b/server/test/com/cloud/network/security/SecurityGroupManagerImplTest.java > new file mode 100644 > index 0000000..8a6b95b > --- /dev/null > +++ b/server/test/com/cloud/network/security/SecurityGroupManagerImplTest.java > @@ -0,0 +1,62 @@ > +/** > + * > + */ > +package com.cloud.network.security; > + > +import java.util.Set; > +import java.util.TreeSet; > + > +import javax.inject.Inject; > + > +import junit.framework.TestCase; > + > +import org.junit.Before; > +import org.junit.Test; > +import org.junit.runner.RunWith; > +import org.springframework.test.context.ContextConfiguration; > +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; > + > +import com.cloud.network.security.SecurityGroupManagerImpl.CidrComparator; > + > +/** > + * @author daan > + * > + */ > +@RunWith(SpringJUnit4ClassRunner.class) > +@ContextConfiguration(locations = > "classpath:/SecurityGroupManagerTestContext.xml") > +public class SecurityGroupManagerImplTest extends TestCase { > + @Inject > + SecurityGroupManagerImpl2 _sgMgr = null; > + Set<String> cidrs; > + @Before > + public void setup() throws Exception { > + cidrs = new TreeSet<String>(new CidrComparator()); > + } > + @Test (expected=NumberFormatException.class) > + public void emptyCidrCompareTest() { > + cidrs.add(""); > + cidrs.add(""); > + } > + @Test (expected=NumberFormatException.class) > + public void faultyCidrCompareTest() { > + cidrs.add("111.222.333.444"); > + cidrs.add("111.222.333.444"); > + } > + @Test > + public void sameCidrCompareTest() { > + cidrs.add("1.2.3.4/5"); > + cidrs.add("1.2.3.4/5"); > + assertEquals("only one element expected",1,cidrs.size()); > + CidrComparator cmp = new CidrComparator(); > + assertEquals("should be 0",0,cmp.compare("1.2.3.4/5","1.2.3.4/5")); > + } > + @Test > + public void CidrCompareTest() { > + cidrs.add("1.2.3.4/5"); > + cidrs.add("1.2.3.4/6"); > + assertEquals("two element expected",2,cidrs.size()); > + CidrComparator cmp = new CidrComparator(); > + assertEquals("should be 1",1,cmp.compare("1.2.3.4/5","1.2.3.4/6")); > + assertEquals("should be -2",-2,cmp.compare("1.2.3.4/5","1.2.3.4/3")); > + } > +} >