コード例 #1
0
                public async Task KeyDoesNotExist_CallsRetrieveOnLockoutStore()
                {
                    var helper = new FakeUserHelper1();

                    _ = await helper.IsLockedOut("key");

                    Assert.Equal("key", helper.FakeTimedLockoutStore.Retrieve_KeyInput);
                }
コード例 #2
0
                public async Task WhiteSpaceKey_Throws()
                {
                    UserHelper helper = new FakeUserHelper1();

                    await Assert.ThrowsAsync <ArgumentException>("key", async() =>
                    {
                        await helper.IsLockedOut(key: " ");
                    });
                }
コード例 #3
0
                public async Task NullKey_Throws()
                {
                    UserHelper helper = new FakeUserHelper1();

                    await Assert.ThrowsAsync <ArgumentNullException>("key", async() =>
                    {
                        await helper.IsLockedOut(key: null);
                    });
                }
コード例 #4
0
                public async Task KeyDoesNotExist_ReturnsFalse()
                {
                    var helper = new FakeUserHelper1();

                    helper.FakeTimedLockoutStore.Retrieve_Output = null;

                    var result = await helper.IsLockedOut("key");

                    Assert.False(result);
                }
コード例 #5
0
                public async Task KeyDoesNotExist_AddsData()
                {
                    var helper = new FakeUserHelper1();

                    helper.FakeTimedLockoutStore.Retrieve_Output = null;

                    _ = await helper.IsLockedOut("key");

                    var created = helper.FakeTimedLockoutStore.Create_InputData;

                    Assert.Equal("key", created !.Key);
                    Assert.Equal(helper.FakeClock.UtcNow, created.LastModified);
                    Assert.Equal(1, created.FailedAccessAttempts);
                    Assert.Null(created.Expiration);
                }
コード例 #6
0
                public async Task ReachesFiveFailedAccessAttempts_ReturnsTrue()
                {
                    var helper = new FakeUserHelper1();

                    var lockout = new TimedLockout("key", helper.FakeClock.UtcNow)
                    {
                        FailedAccessAttempts = 4
                    };

                    helper.FakeTimedLockoutStore.Retrieve_Output = lockout;

                    // Act
                    var result = await helper.IsLockedOut("key");

                    Assert.True(result);
                }
コード例 #7
0
                public async Task StaleExpiration_ReturnsFalse()
                {
                    var helper     = new FakeUserHelper1();
                    var expiration = helper.FakeClock.UtcNow.AddDays(-1);
                    var lockout    = new TimedLockout("key", helper.FakeClock.UtcNow)
                    {
                        Expiration = expiration,
                    };

                    helper.FakeTimedLockoutStore.Retrieve_Output = lockout;

                    // Act
                    var result = await helper.IsLockedOut("key");

                    Assert.False(result);
                }
コード例 #8
0
                public async Task OpenExpiration_ReturnsTrue()
                {
                    var helper     = new FakeUserHelper1();
                    var expiration = new UtcDateTime(
                        helper.FakeClock.UtcNow.ToOffset().AddDays(1));
                    var lockout = new TimedLockout("key", helper.FakeClock.UtcNow)
                    {
                        Expiration = expiration
                    };

                    helper.FakeTimedLockoutStore.Retrieve_Output = lockout;

                    // Act
                    var result = await helper.IsLockedOut("key");

                    Assert.True(result);
                }
コード例 #9
0
                public async Task StaleLastModified_ReturnsFalse()
                {
                    var helper = new FakeUserHelper1();

                    var lockout = new TimedLockout("key", helper.FakeClock.UtcNow.AddDays(-1))
                    {
                        Expiration           = null,
                        FailedAccessAttempts = 5,
                    };

                    helper.FakeTimedLockoutStore.Retrieve_Output = lockout;

                    // Act
                    var result = await helper.IsLockedOut("key");

                    Assert.False(result);
                }
コード例 #10
0
                public async Task UnderMaxFailedAccessAttempts_UpdatesData()
                {
                    var helper = new FakeUserHelper1();

                    var lockout = new TimedLockout("key", helper.FakeClock.UtcNow)
                    {
                        FailedAccessAttempts = 1
                    };

                    helper.FakeTimedLockoutStore.Retrieve_Output = lockout;

                    // Act
                    _ = await helper.IsLockedOut("key");

                    var updated = helper.FakeTimedLockoutStore.Update_InputData;

                    Assert.Equal("key", updated !.Key);
                    Assert.Equal(helper.FakeClock.UtcNow, updated.LastModified);
                    Assert.Equal(2, updated.FailedAccessAttempts);
                    Assert.Null(updated.Expiration);
                }
コード例 #11
0
                public async Task StaleExpiration_ResetsData()
                {
                    var helper     = new FakeUserHelper1();
                    var expiration = helper.FakeClock.UtcNow.AddDays(-1);
                    var lockout    = new TimedLockout("key", helper.FakeClock.UtcNow)
                    {
                        Expiration = expiration,
                    };

                    helper.FakeTimedLockoutStore.Retrieve_Output = lockout;

                    // Act
                    var result = await helper.IsLockedOut("key");

                    var updated = helper.FakeTimedLockoutStore.Update_InputData;

                    Assert.Equal("key", updated.Key);
                    Assert.Equal(helper.FakeClock.UtcNow, updated.LastModified);
                    Assert.Equal(1, updated.FailedAccessAttempts);
                    Assert.Null(updated.Expiration);
                }
コード例 #12
0
                public async Task ReachesFiveFailedAccessAttempts_UpdatesData()
                {
                    var helper = new FakeUserHelper1();

                    var lockout = new TimedLockout("key", helper.FakeClock.UtcNow)
                    {
                        FailedAccessAttempts = 4,
                    };

                    helper.FakeTimedLockoutStore.Retrieve_Output = lockout;

                    // Act
                    _ = await helper.IsLockedOut("key");

                    var updated = helper.FakeTimedLockoutStore.Update_InputData;

                    Assert.Equal("key", updated !.Key);
                    Assert.Equal(helper.FakeClock.UtcNow, updated.LastModified);
                    Assert.Equal(5, updated.FailedAccessAttempts);
                    Assert.Equal(helper.FakeClock.UtcNow.ToOffset().Add(
                                     TimeSpan.FromMinutes(10)), updated.Expiration !.ToOffset());
                }
コード例 #13
0
                public async Task StaleLastModified_ResetsData()
                {
                    var helper = new FakeUserHelper1();

                    var lockout = new TimedLockout("key",
                                                   new UtcDateTime(helper.FakeClock.UtcNow.ToOffset().AddDays(-1)))
                    {
                        Expiration           = null,
                        FailedAccessAttempts = 5,
                    };

                    helper.FakeTimedLockoutStore.Retrieve_Output = lockout;

                    // Act
                    _ = await helper.IsLockedOut("key");

                    var updated = helper.FakeTimedLockoutStore.Update_InputData;

                    Assert.Equal("key", updated !.Key);
                    Assert.Equal(helper.FakeClock.UtcNow, updated.LastModified);
                    Assert.Equal(1, updated.FailedAccessAttempts);
                    Assert.Null(updated.Expiration);
                }