@Test(groups = "unit")
public void sessionContainer() throws Exception {

    SessionContainer sessionContainer = new SessionContainer("127.0.0.1");
    int numCollections = 2;
    int numPartitionKeyRangeIds = 5;
    for (int i = 0; i < numCollections; i++) {
        String collectionResourceId = ResourceId.newDocumentCollectionId(getRandomDbId(), getRandomCollectionId() + i).getDocumentCollectionId().toString();
        String collectionFullName = "dbs/db1/colls/collName_" + i;
        for (int j = 0; j < numPartitionKeyRangeIds; j++) {
            String partitionKeyRangeId = "range_" + j;
            String lsn = "1#" + j + "#4=90#5=2";
            sessionContainer.setSessionToken(
                    collectionResourceId,
                    collectionFullName,
                    ImmutableMap.of(HttpConstants.HttpHeaders.SESSION_TOKEN, partitionKeyRangeId + ":" + lsn));
        }
    }
    RxDocumentServiceRequest request = RxDocumentServiceRequest.create(OperationType.ReadFeed, ResourceType.DocumentCollection,
            "dbs/db1/colls/collName_1", IOUtils.toInputStream("content1", "UTF-8"), new HashMap<>());
    ISessionToken sessionToken = sessionContainer.resolvePartitionLocalSessionToken(request, "range_1");
    assertThat(sessionToken.getLSN()).isEqualTo(1);
    DocumentServiceRequestContext dsrContext = new DocumentServiceRequestContext();
    PartitionKeyRange resolvedPKRange = new PartitionKeyRange();
    resolvedPKRange.setId("range_" + (numPartitionKeyRangeIds + 10));
    GatewayTestUtils.setParent(resolvedPKRange, ImmutableList.of("range_2", "range_x"));
    dsrContext.resolvedPartitionKeyRange = resolvedPKRange;
    request.requestContext = dsrContext;
    sessionToken = sessionContainer.resolvePartitionLocalSessionToken(request, resolvedPKRange.getId());
    assertThat(sessionToken.getLSN()).isEqualTo(2);
}