Ejemplo n.º 1
0
        public void FeedRangeEPK_RequestVisitor()
        {
            Documents.Routing.Range <string> range = new Documents.Routing.Range <string>("AA", "BB", true, false);
            FeedRangeEPK     feedRange             = new FeedRangeEPK(range);
            RequestMessage   requestMessage        = new RequestMessage();
            FeedRangeVisitor feedRangeVisitor      = new FeedRangeVisitor(requestMessage);

            feedRange.Accept(feedRangeVisitor);
            Assert.AreEqual(0, requestMessage.Properties.Count);
        }
Ejemplo n.º 2
0
        public void FeedRangePK_RequestVisitor()
        {
            PartitionKey          partitionKey          = new PartitionKey("test");
            FeedRangePartitionKey feedRangePartitionKey = new FeedRangePartitionKey(partitionKey);
            RequestMessage        requestMessage        = new RequestMessage();
            FeedRangeVisitor      feedRangeVisitor      = new FeedRangeVisitor(requestMessage);

            feedRangePartitionKey.Accept(feedRangeVisitor);
            Assert.AreEqual(partitionKey.InternalKey.ToJsonString(), requestMessage.Headers.PartitionKey);
            Assert.IsFalse(requestMessage.IsPartitionKeyRangeHandlerRequired);
        }
Ejemplo n.º 3
0
        public void FeedRangePKRangeId_RequestVisitor()
        {
            Documents.PartitionKeyRange partitionKeyRange = new Documents.PartitionKeyRange()
            {
                Id = Guid.NewGuid().ToString(), MinInclusive = "AA", MaxExclusive = "BB"
            };
            FeedRangePartitionKeyRange feedRangePartitionKeyRange = new FeedRangePartitionKeyRange(partitionKeyRange.Id);
            RequestMessage             requestMessage             = new RequestMessage();
            FeedRangeVisitor           feedRangeVisitor           = new FeedRangeVisitor(requestMessage);

            feedRangePartitionKeyRange.Accept(feedRangeVisitor);
            Assert.IsNotNull(requestMessage.PartitionKeyRangeId);
            Assert.IsFalse(requestMessage.IsPartitionKeyRangeHandlerRequired);
        }
        public void FeedRangeCompositeContinuation_RequestVisitor_IfEPKAlreadyExists()
        {
            const string containerRid = "containerRid";
            const string continuation = "continuation";
            string       epkString    = Guid.NewGuid().ToString();

            Documents.Routing.Range <string> range = new Documents.Routing.Range <string>("A", "B", true, false);
            FeedRangeCompositeContinuation   token = new FeedRangeCompositeContinuation(containerRid, Mock.Of <FeedRangeInternal>(), new List <Documents.Routing.Range <string> >()
            {
                range
            }, continuation);
            RequestMessage   requestMessage   = new RequestMessage();
            FeedRangeVisitor feedRangeVisitor = new FeedRangeVisitor(requestMessage);

            requestMessage.Properties[HandlerConstants.StartEpkString] = epkString;
            requestMessage.Properties[HandlerConstants.EndEpkString]   = epkString;
            token.Accept(feedRangeVisitor, ChangeFeedRequestOptions.FillContinuationToken);
            Assert.AreEqual(epkString, requestMessage.Properties[HandlerConstants.StartEpkString]);
            Assert.AreEqual(epkString, requestMessage.Properties[HandlerConstants.EndEpkString]);
        }
        public void FeedRangeCompositeContinuation_RequestVisitor()
        {
            const string containerRid = "containerRid";
            const string continuation = "continuation";

            Documents.Routing.Range <string> range = new Documents.Routing.Range <string>("A", "B", true, false);
            FeedRangeCompositeContinuation   token = new FeedRangeCompositeContinuation(containerRid, Mock.Of <FeedRangeInternal>(), new List <Documents.Routing.Range <string> >()
            {
                range
            }, continuation);
            RequestMessage requestMessage = new RequestMessage();

            requestMessage.OperationType = Documents.OperationType.ReadFeed;
            requestMessage.ResourceType  = Documents.ResourceType.Document;
            FeedRangeVisitor feedRangeVisitor = new FeedRangeVisitor(requestMessage);

            token.Accept(feedRangeVisitor, ChangeFeedRequestOptions.FillContinuationToken);
            Assert.AreEqual(range.Min, requestMessage.Properties[HandlerConstants.StartEpkString]);
            Assert.AreEqual(range.Max, requestMessage.Properties[HandlerConstants.EndEpkString]);
            Assert.AreEqual(continuation, requestMessage.Headers.IfNoneMatch);
            Assert.IsTrue(requestMessage.IsPartitionKeyRangeHandlerRequired);
        }