private static PagingPredicate UnwrapPagingPredicate(IPredicate predicate) { return(predicate switch { PagingPredicate paging => paging, PartitionPredicate partition => partition.Target as PagingPredicate, _ => null });
private static PagingPredicateHolder OfInternal(PartitionPredicate partitionPredicate, ISerializationService serializationService) { if (partitionPredicate == null) { return(null); } var pagingPredicate = (PagingPredicate)partitionPredicate.GetTarget(); var partitionKeyData = serializationService.ToData(partitionPredicate.GetPartitionKey()); return(BuildHolder(serializationService, pagingPredicate, partitionKeyData)); }
public void PartitionPredicate() { AssertPredicate(new PartitionPredicate(), PredicateDataSerializerHook.PartitionPredicate); AssertPredicate(new PartitionPredicate("key", Predicates.True()), PredicateDataSerializerHook.PartitionPredicate); var partition = new PartitionPredicate("key", Predicates.True()); Assert.That(partition.FactoryId, Is.EqualTo(FactoryIds.PredicateFactoryId)); Assert.That(partition.ClassId, Is.EqualTo(PredicateDataSerializerHook.PartitionPredicate)); using var output = new ObjectDataOutput(1024, _serializationService, Endianness.BigEndian); partition.WriteData(output); using var input = new ObjectDataInput(output.Buffer, _serializationService, Endianness.BigEndian); var p = new PartitionPredicate(); p.ReadData(input); Assert.That(p.PartitionKey, Is.EqualTo(partition.PartitionKey)); Assert.That(p.Target, Is.EqualTo(partition.Target)); }
public void PartitionPredicate() { AssertPredicate(new PartitionPredicate(), PredicateDataSerializerHook.PartitionPredicate); AssertPredicate(new PartitionPredicate("key", Predicate.True()), PredicateDataSerializerHook.PartitionPredicate); var partition = new PartitionPredicate("key", Predicate.True()); Assert.That(partition.FactoryId, Is.EqualTo(FactoryIds.PredicateFactoryId)); Assert.That(partition.ClassId, Is.EqualTo(PredicateDataSerializerHook.PartitionPredicate)); Assert.Throws <ArgumentNullException>(() => partition.WriteData(null)); Assert.Throws <ArgumentNullException>(() => partition.ReadData(null)); using var output = new ByteArrayObjectDataOutput(1024, _serializationService, Endianness.Unspecified); partition.WriteData(output); using var input = new ByteArrayObjectDataInput(output.Buffer, _serializationService, Endianness.Unspecified); var p = new PartitionPredicate(); p.ReadData(input); Assert.That(p.PartitionKey, Is.EqualTo(partition.PartitionKey)); Assert.That(p.Target, Is.EqualTo(partition.Target)); }