SourceSequence seq = null;
SourcePolicyType sp = RMUtils.getWSRMConfFactory().createSourcePolicyType();
// default termination policy
SequenceTerminationPolicyType stp =
RMUtils.getWSRMConfFactory().createSequenceTerminationPolicyType();
sp.setSequenceTerminationPolicy(stp);
seq = new SourceSequence(id);
seq.setSource(source);
assertTrue(!nextSequences(seq, sp, 10));
// termination policy max length = 1
seq = new SourceSequence(id);
seq.setSource(source);
stp.setMaxLength(BigInteger.ONE);
assertTrue(nextSequences(seq, sp, 10));
assertEquals(BigInteger.ONE, seq.getCurrentMessageNr());
// termination policy max length = 5
seq = new SourceSequence(id);
seq.setSource(source);
stp.setMaxLength(new BigInteger("5"));
assertTrue(!nextSequences(seq, sp, 2));
// termination policy max range exceeded
seq = new SourceSequence(id);
seq.setSource(source);
stp.setMaxLength(null);
stp.setMaxRanges(new Integer(3));
acknowledge(seq, 1, 2, 4, 5, 6, 8, 9, 10);
assertTrue(nextSequences(seq, sp, 10));
assertEquals(BigInteger.ONE, seq.getCurrentMessageNr());
// termination policy max range not exceeded
seq = new SourceSequence(id);
seq.setSource(source);
stp.setMaxLength(null);
stp.setMaxRanges(new Integer(4));
acknowledge(seq, 1, 2, 4, 5, 6, 8, 9, 10);
assertTrue(!nextSequences(seq, sp, 10));
// termination policy max unacknowledged
}