public void TestClearTokenKeepsUnmatchedCollection() { SessionContainer sessionContainer = new SessionContainer("127.0.0.1"); var collectionResourceId1 = ResourceId.NewDocumentCollectionId(42, 129).DocumentCollectionId.ToString(); string collectionFullname1 = "dbs/db1/colls/collName1"; sessionContainer.SetSessionToken( collectionResourceId1, collectionFullname1, new DictionaryNameValueCollection() { { HttpConstants.HttpHeaders.SessionToken, "range_0:1#100#4=90#5=1" } } ); var collectionResourceId2 = ResourceId.NewDocumentCollectionId(42, 130).DocumentCollectionId.ToString(); string collectionFullname2 = "dbs/db1/colls/collName2"; sessionContainer.SetSessionToken( collectionResourceId2, collectionFullname2, new DictionaryNameValueCollection() { { HttpConstants.HttpHeaders.SessionToken, "range_0:1#100#4=90#5=1" } } ); using (DocumentServiceRequest request = DocumentServiceRequest.Create(OperationType.Read, collectionResourceId1, ResourceType.Document, AuthorizationTokenType.PrimaryMasterKey, null)) { ISessionToken token = sessionContainer.ResolvePartitionLocalSessionToken(request, "range_0"); Assert.AreEqual(100, token.LSN); } using (DocumentServiceRequest request = DocumentServiceRequest.Create(OperationType.Read, collectionResourceId2, ResourceType.Document, AuthorizationTokenType.PrimaryMasterKey, null)) { ISessionToken token = sessionContainer.ResolvePartitionLocalSessionToken(request, "range_0"); Assert.AreEqual(100, token.LSN); } sessionContainer.ClearTokenByResourceId(collectionResourceId1); using (DocumentServiceRequest request = DocumentServiceRequest.Create(OperationType.Read, collectionResourceId1, ResourceType.Document, AuthorizationTokenType.PrimaryMasterKey, null)) { ISessionToken token = sessionContainer.ResolvePartitionLocalSessionToken(request, "range_0"); Assert.AreEqual(null, token); } using (DocumentServiceRequest request = DocumentServiceRequest.Create(OperationType.Read, collectionResourceId2, ResourceType.Document, AuthorizationTokenType.PrimaryMasterKey, null)) { ISessionToken token = sessionContainer.ResolvePartitionLocalSessionToken(request, "range_0"); Assert.AreEqual(100, token.LSN); } }
public void TestClearTokenByResourceIdRemovesToken() { SessionContainer sessionContainer = new SessionContainer("127.0.0.1"); var collectionResourceId = ResourceId.NewDocumentCollectionId(42, 129).DocumentCollectionId.ToString(); string collectionFullname = "dbs/db1/colls/collName"; sessionContainer.SetSessionToken( collectionResourceId, collectionFullname, new DictionaryNameValueCollection() { { HttpConstants.HttpHeaders.SessionToken, "range_0:1#100#4=90#5=1" } } ); // check that can read from cache based on resource-id using (DocumentServiceRequest request = DocumentServiceRequest.Create(OperationType.Read, collectionResourceId, ResourceType.Document, AuthorizationTokenType.PrimaryMasterKey, null)) { ISessionToken token = sessionContainer.ResolvePartitionLocalSessionToken(request, "range_0"); Assert.AreEqual(100, token.LSN); } // check that can read from cache based on name using (DocumentServiceRequest request = DocumentServiceRequest.CreateFromName(OperationType.Read, "dbs/db1/colls/collName/docs/42", ResourceType.Document, AuthorizationTokenType.PrimaryMasterKey, null)) { ISessionToken token = sessionContainer.ResolvePartitionLocalSessionToken(request, "range_0"); Assert.AreEqual(100, token.LSN); } sessionContainer.ClearTokenByResourceId(collectionResourceId); // check that can't read from cache based on resource-id using (DocumentServiceRequest request = DocumentServiceRequest.Create(OperationType.Read, collectionResourceId, ResourceType.Document, AuthorizationTokenType.PrimaryMasterKey, null)) { ISessionToken token = sessionContainer.ResolvePartitionLocalSessionToken(request, "range_0"); Assert.AreEqual(null, token); } // check that can't read from cache based on name using (DocumentServiceRequest request = DocumentServiceRequest.CreateFromName(OperationType.Read, "dbs/db1/colls/collName/docs/42", ResourceType.Document, AuthorizationTokenType.PrimaryMasterKey, null)) { ISessionToken token = sessionContainer.ResolvePartitionLocalSessionToken(request, "range_0"); Assert.AreEqual(null, token); } }