private ClaimsIdentity CreateClaimsIdentity(UserClaimsData userClaimsData)
        {
            var claimsIdentity = new ClaimsIdentity();

            // Issue custom claims
            claimsIdentity.Claims.Add(new Claim(ClaimTypes.Name, userClaimsData.Username));
            claimsIdentity.Claims.AddRange(userClaimsData.Claims);

            return claimsIdentity;
        }
        protected override void EstablishContext()
        {
            base.EstablishContext();

            suppliedApplicationClaims = GetApplicationClaims();

            Expect.Call(claimsIdentity.IsAuthenticated).Return(true);
            httpContextItemsProvider.Expect(x => x.Add(null, null)).IgnoreArguments();
            claimsIdentity.Expect(x => x.Name).Return(userName);
            Expect.Call(staffInformationFromEmailProvider.ResolveStaffUSI(EMAIL)).Return(staffUSI);
            Expect.Call(userClaimsProvider.GetApplicationSpecificClaims(userName, staffUSI)).Return(suppliedApplicationClaims);
            suppliedImpersonatedClaims = GetSuppliedImpersonatedClaims();
            var userData = new UserClaimsData() { Claims = suppliedImpersonatedClaims, Username = userName };
            Expect.Call(getImpersonatedClaimsDataProvider.IsImpersonating()).Return(true);
            Expect.Call(getImpersonatedClaimsDataProvider.GetImpersonatedClaimsData(suppliedApplicationClaims)).Return(userData);
            ClaimsIssuedTrackingEventProvider.Expect(x => x.Track(userName, staffUSI, false, suppliedImpersonatedClaims));
        }
 protected virtual void VerifyUserClaimsData(UserClaimsData userClaimData)
 {
     Assert.That(userClaimData.Username, Is.EqualTo(targetedUsername));
     Assert.That(userClaimData.StaffUSI, Is.EqualTo(Convert.ToInt64( staffUSIToImpersonate)));
     var testThisOut1 = userClaimData.Claims.Select(x => x.ToString()).ToList();
     var testThisOut2 = GetApplicationSpecificClaims().Select(x => x.ToString()).ToList();
     CollectionAssert.IsSubsetOf(testThisOut2, testThisOut1);
 }