예제 #1
0
                public void WhenCalled_SetsValue()
                {
                    var  data           = new TimedLockout("key", DateTimeOffset.UtcNow);
                    byte failedAttempts = 5;

                    data.FailedAccessAttempts = failedAttempts;

                    Assert.Equal(failedAttempts, data.FailedAccessAttempts);
                }
예제 #2
0
                public void WhenCalled_SetsValue()
                {
                    var data         = new TimedLockout("key", DateTimeOffset.UtcNow);
                    var lastModified = DateTimeOffset.UtcNow.AddDays(1);

                    data.LastModified = lastModified;

                    Assert.Equal(lastModified, data.LastModified);
                }
예제 #3
0
                public void WhenCalled_SetsValue()
                {
                    var data       = new TimedLockout("key", DateTimeOffset.UtcNow);
                    var expiration = DateTimeOffset.UtcNow.AddDays(1);

                    data.Expiration = expiration;

                    Assert.Equal(expiration, data.Expiration);
                }
예제 #4
0
                public void WhenCalled_SetsCorrectProperties()
                {
                    var key          = "key";
                    var lastModified = DateTimeOffset.UtcNow;

                    var data = new TimedLockout(key, lastModified);

                    Assert.Equal(key, data.Key);
                    Assert.Equal(lastModified, data.LastModified);
                }
예제 #5
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);
                }
예제 #6
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);
                }
예제 #7
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);
                }
예제 #8
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);
                }
예제 #9
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);
                }
예제 #10
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);
                }
예제 #11
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());
                }
예제 #12
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);
                }
예제 #13
0
                public void DefaultValue_Equals1()
                {
                    var data = new TimedLockout("key", DateTimeOffset.UtcNow);

                    Assert.Equal(1, data.FailedAccessAttempts);
                }
예제 #14
0
                public void DefaultValue_ReturnsNull()
                {
                    var data = new TimedLockout("key", DateTimeOffset.UtcNow);

                    Assert.Null(data.Expiration);
                }