示例#1
0
        public async Task SuccessIsTokenValid(bool isValid, bool needRefresh)
        {
            kuzzle.AuthenticationToken = "foobar";

            Int64 expiresAt =
                (Int64)DateTime.UtcNow.AddHours(1.5)
                .Subtract(new DateTime(1970, 1, 1))
                .TotalMilliseconds;

            if (needRefresh)
            {
                expiresAt =
                    (Int64)DateTime.UtcNow.AddHours(0.5)
                    .Subtract(new DateTime(1970, 1, 1))
                    .TotalMilliseconds;
            }

            kuzzle.mockedAuthController.Setup(obj =>
                                              obj.CheckTokenAsync(It.IsAny <string>()))
            .Returns(Task.FromResult <JObject>(new JObject {
                { "valid", isValid },
                { "expiresAt", expiresAt }
            })
                     );

            bool valid = await tokenVerifier.IsTokenValid();

            kuzzle.mockedAuthController.Verify(
                (obj) => obj.CheckTokenAsync(It.Is <string>(o => o.Equals("foobar")))
                );

            if (needRefresh && isValid)
            {
                kuzzle.mockedAuthController.Verify(
                    (obj) => obj.RefreshTokenAsync(It.IsAny <TimeSpan>()), Times.Once
                    );
            }
            else
            {
                kuzzle.mockedAuthController.Verify(
                    (obj) => obj.RefreshTokenAsync(It.IsAny <TimeSpan>()), Times.Never
                    );
            }

            Assert.Equal(isValid, valid);
        }