private void twoAddressesTest( String shard1Id, String shard2Id, int node1Weight, int node2Weight) { DataSource testDataSource = new DataSource() { public RedisConnection getConnection() { return null; } }; TestNode node1 = new TestNode(); TestNode node2 = new TestNode(); expect(dataSourceFactoryMock.create("addr1", 1)).andReturn(testDataSource); expect(nodeFactoryMock.create(testDataSource)).andReturn(node1); expect(dataSourceFactoryMock.create("addr2", 2)).andReturn(testDataSource); expect(nodeFactoryMock.create(testDataSource)).andReturn(node2); replay(nodeFactoryMock, dataSourceFactoryMock); List<Shard<TestNode>> shards = new ArrayList<Shard<TestNode>>(shardsFactory.create()); verify(nodeFactoryMock, dataSourceFactoryMock); Shard<TestNode> shard = shards.get(0); assertEquals(node1, shard.getNode()); assertEquals(shard1Id, shard.getShardId()); assertEquals(node1Weight, shard.getWeight()); shard = shards.get(1); assertEquals(node2, shard.getNode()); assertEquals(shard2Id, shard.getShardId()); assertEquals(node2Weight, shard.getWeight()); }