public void Ctor_BitLength_ProducesDifferentValues() { // Act var blobA = new BinaryBlob(bitLength: 64); var blobB = new BinaryBlob(bitLength: 64); // Assert Assert.NotEqual(blobA.GetData(), blobB.GetData()); }
public void Ctor_BitLength() { // Act var blob = new BinaryBlob(bitLength: 64); var data = blob.GetData(); // Assert Assert.Equal(64, blob.BitLength); Assert.Equal(64 / 8, data.Length); Assert.NotEqual(new byte[64 / 8], data); // should not be a zero-filled array }
public void Ctor_Data() { // Arrange var expectedData = new byte[] { 0x01, 0x02, 0x03, 0x04 }; // Act var blob = new BinaryBlob(32, expectedData); // Assert Assert.Equal(32, blob.BitLength); Assert.Equal(expectedData, blob.GetData()); }
public void ValidateTokens_ClaimUidMismatch() { // Arrange var httpContext = new DefaultHttpContext(); var identity = GetAuthenticatedIdentity("the-user"); httpContext.User = new ClaimsPrincipal(identity); var sessionToken = new AntiforgeryToken() { IsSessionToken = true }; var fieldtoken = new AntiforgeryToken() { SecurityToken = sessionToken.SecurityToken, IsSessionToken = false, ClaimUid = new BinaryBlob(256) }; var differentToken = new BinaryBlob(256); var mockClaimUidExtractor = new Mock <IClaimUidExtractor>(); mockClaimUidExtractor.Setup(o => o.ExtractClaimUid(identity)) .Returns(Convert.ToBase64String(differentToken.GetData())); var tokenProvider = new DefaultAntiforgeryTokenGenerator( optionsAccessor: new TestOptionsManager(), claimUidExtractor: mockClaimUidExtractor.Object, additionalDataProvider: null); // Act & assert var exception = Assert.Throws <InvalidOperationException>( () => tokenProvider.ValidateTokens(httpContext, sessionToken, fieldtoken)); Assert.Equal( @"The provided antiforgery token was meant for a different claims-based user than the current user.", exception.Message); }