public void TestNullShard() { FirstNonNullResultExitStrategy<object> fnnres = new FirstNonNullResultExitStrategy<object>(); try { fnnres.AddResult(null, null); Assert.Fail("expected npe"); } catch (NullReferenceException npe) { // good } }
public Object UniqueResult() { // build a shard operation and apply it across all shards IShardOperation <object> shardOp = new UniqueResultShardOperation <object>(this); IExitStrategy <object> exitStrategy = new FirstNonNullResultExitStrategy <object>(); /** * We don't support shard selection for criteria queries. If you want * custom shards, create a ShardedSession with only the shards you want. * We're going to return the first non-null result we get from a shard. */ return(this.shardAccessStrategy.Apply(this.shards, shardOp, exitStrategy, this.criteriaCollector)); }
public void TestNullShard() { FirstNonNullResultExitStrategy <object> fnnres = new FirstNonNullResultExitStrategy <object>(); try { fnnres.AddResult(null, null); Assert.Fail("expected npe"); } catch (NullReferenceException npe) { // good } }
public void TestAddResult() { FirstNonNullResultExitStrategy<object> fnnres = new FirstNonNullResultExitStrategy<object>(); IShard shard1 = Mock<IShard>(); fnnres.AddResult(null, shard1); Assert.IsNull(fnnres.CompileResults(null)); //Assert.IsNull(fnnres.GetShardOfResult()); Object result = new Object(); IShard shard2 = Mock<IShard>(); fnnres.AddResult(result, shard2); Assert.AreSame(result, fnnres.CompileResults(null)); //Assert.AreSame(shard2, fnnres.getShardOfResult()); Object anotherResult = new Object(); IShard shard3 = Mock<IShard>(); fnnres.AddResult(anotherResult, shard3); Assert.AreSame(result, fnnres.CompileResults(null)); //Assert.AreSame(shard2, fnnres.?)getShardOfResult()); }
public void TestAddResult() { FirstNonNullResultExitStrategy <object> fnnres = new FirstNonNullResultExitStrategy <object>(); IShard shard1 = Mock <IShard>(); fnnres.AddResult(null, shard1); Assert.IsNull(fnnres.CompileResults(null)); //Assert.IsNull(fnnres.GetShardOfResult()); Object result = new Object(); IShard shard2 = Mock <IShard>(); fnnres.AddResult(result, shard2); Assert.AreSame(result, fnnres.CompileResults(null)); //Assert.AreSame(shard2, fnnres.getShardOfResult()); Object anotherResult = new Object(); IShard shard3 = Mock <IShard>(); fnnres.AddResult(anotherResult, shard3); Assert.AreSame(result, fnnres.CompileResults(null)); //Assert.AreSame(shard2, fnnres.?)getShardOfResult()); }