Example #1
0
        public async Task GetUserConsentAsync_CatalogueAgreementNotSigned_ReturnsConsentWithNoScopes()
        {
            const string clientId  = "SomeClient";
            const string subjectId = "JulesVerneId";

            var expectedConsent = new Consent
            {
                ClientId   = clientId,
                Expiration = DateTime.MaxValue,
                Scopes     = null,
                SubjectId  = subjectId,
            };

            var user = ApplicationUserBuilder.Create().Build();
            var mockUsersRepository = new Mock <IUsersRepository>();

            mockUsersRepository.Setup(
                u => u.GetByIdAsync(It.Is <string>(s => s.Equals(subjectId, StringComparison.Ordinal))))
            .ReturnsAsync(user);

            var store = new CatalogueAgreementConsentStore(Mock.Of <IScopeRepository>(), mockUsersRepository.Object);

            var actualConsent = await store.GetUserConsentAsync(subjectId, clientId);

            actualConsent.Should().BeEquivalentTo(expectedConsent, o => o.Excluding(c => c.CreationTime));
        }
Example #2
0
        public void RemoveUserConsentAsync_ReturnsCompletedTask()
        {
            var store = new CatalogueAgreementConsentStore(Mock.Of <IScopeRepository>(), Mock.Of <IUsersRepository>());

            var response = store.RemoveUserConsentAsync(null, null);

            response.Should().Be(Task.CompletedTask);
        }
Example #3
0
        public async Task StoreUserConsentAsync_UpdatesRepository()
        {
            var user = ApplicationUserBuilder.Create().Build();
            var mockUsersRepository = new Mock <IUsersRepository>();

            mockUsersRepository.Setup(u => u.GetByIdAsync(It.IsAny <string>()))
            .ReturnsAsync(user);

            var store = new CatalogueAgreementConsentStore(Mock.Of <IScopeRepository>(), mockUsersRepository.Object);

            await store.StoreUserConsentAsync(new Consent());

            mockUsersRepository.Verify(r => r.UpdateAsync(It.Is <ApplicationUser>(u => u == user)), Times.Once());
        }
Example #4
0
        public async Task StoreUserConsentAsync_MarksCatalogueAgreementSigned()
        {
            const string subjectId = "JulesVerneId";

            var user = ApplicationUserBuilder.Create().Build();
            var mockUsersRepository = new Mock <IUsersRepository>();

            mockUsersRepository.Setup(
                u => u.GetByIdAsync(It.Is <string>(s => s.Equals(subjectId, StringComparison.Ordinal))))
            .ReturnsAsync(user);

            var store = new CatalogueAgreementConsentStore(Mock.Of <IScopeRepository>(), mockUsersRepository.Object);

            user.CatalogueAgreementSigned.Should().BeFalse();

            await store.StoreUserConsentAsync(new Consent { SubjectId = subjectId });

            user.CatalogueAgreementSigned.Should().BeTrue();
        }
Example #5
0
        public void StoreUserConsentAsync_NullConsent_ThrowsException()
        {
            var store = new CatalogueAgreementConsentStore(Mock.Of <IScopeRepository>(), Mock.Of <IUsersRepository>());

            Assert.ThrowsAsync <ArgumentNullException>(async() => await store.StoreUserConsentAsync(null));
        }