public void Constructor_Default_InitializesProperties()
        {
            var configuration = new CertificatesConfiguration();

            Assert.False(configuration.IsUIEnabledByDefault);
            Assert.Empty(configuration.AlwaysEnabledForDomains);
            Assert.Empty(configuration.AlwaysEnabledForEmailAddresses);
        }
        public void IsUIEnabledForUser_WhenNotEnabled_ReturnsFalse()
        {
            var configuration = new CertificatesConfiguration(
                isUIEnabledByDefault: false,
                alwaysEnabledForDomains: Enumerable.Empty <string>(),
                alwaysEnabledForEmailAddresses: Enumerable.Empty <string>());

            Assert.False(configuration.IsUIEnabledForUser(_user));
        }
        public void IsUIEnabledForUser_WhenUIIsEnabledForEmailAddress_ReturnsTrue(string emailAddress)
        {
            var configuration = new CertificatesConfiguration(
                isUIEnabledByDefault: false,
                alwaysEnabledForDomains: Enumerable.Empty <string>(),
                alwaysEnabledForEmailAddresses: new[] { emailAddress });

            Assert.True(configuration.IsUIEnabledForUser(_user));
        }
        public void Constructor_NonDefault_InitializesProperties()
        {
            var domains        = new[] { "a" };
            var emailAddresses = new[] { "b" };

            var configuration = new CertificatesConfiguration(
                isUIEnabledByDefault: true,
                alwaysEnabledForDomains: domains,
                alwaysEnabledForEmailAddresses: emailAddresses);

            Assert.True(configuration.IsUIEnabledByDefault);
            Assert.Equal(domains, configuration.AlwaysEnabledForDomains);
            Assert.Equal(emailAddresses, configuration.AlwaysEnabledForEmailAddresses);
        }
Exemple #5
0
            public async Task RefreshRefreshesObject()
            {
                // Arrange
                var emails           = new[] { "*****@*****.**" };
                var domains          = new[] { "example.com" };
                var exceptions       = new[] { "*****@*****.**" };
                var shouldTransforms = new[] { "*****@*****.**" };
                var orgTenantPairs   = new[] { new OrganizationTenantPair("example.com", "tenantId") };

                var loginDiscontinuationConfiguration = new LoginDiscontinuationConfiguration(emails, domains, exceptions, shouldTransforms, orgTenantPairs);
                var loginJson = JsonConvert.SerializeObject(loginDiscontinuationConfiguration);

                var isUIEnabledByDefault           = true;
                var alwaysEnabledForDomains        = new[] { "a" };
                var alwaysEnabledForEmailAddresses = new[] { "b" };

                var certificatesConfiguration = new CertificatesConfiguration(
                    isUIEnabledByDefault,
                    alwaysEnabledForDomains,
                    alwaysEnabledForEmailAddresses);
                var certificatesJson = JsonConvert.SerializeObject(certificatesConfiguration);

                var contentService = GetMock <IContentService>();

                contentService
                .Setup(x => x.GetContentItemAsync(Constants.ContentNames.LoginDiscontinuationConfiguration, It.IsAny <TimeSpan>()))
                .Returns(Task.FromResult <IHtmlString>(new HtmlString(loginJson)));

                contentService
                .Setup(x => x.GetContentItemAsync(Constants.ContentNames.CertificatesConfiguration, It.IsAny <TimeSpan>()))
                .Returns(Task.FromResult <IHtmlString>(new HtmlString(certificatesJson)));

                var service = GetService <ContentObjectService>();

                // Act
                await service.Refresh();

                loginDiscontinuationConfiguration = service.LoginDiscontinuationConfiguration as LoginDiscontinuationConfiguration;
                certificatesConfiguration         = service.CertificatesConfiguration as CertificatesConfiguration;

                // Assert
                Assert.True(loginDiscontinuationConfiguration.DiscontinuedForEmailAddresses.SequenceEqual(emails));
                Assert.True(loginDiscontinuationConfiguration.DiscontinuedForDomains.SequenceEqual(domains));
                Assert.True(loginDiscontinuationConfiguration.ExceptionsForEmailAddresses.SequenceEqual(exceptions));
                Assert.True(loginDiscontinuationConfiguration.EnabledOrganizationAadTenants.SequenceEqual(orgTenantPairs, new OrganizationTenantPairComparer()));

                Assert.True(certificatesConfiguration.IsUIEnabledByDefault);
                Assert.Equal(alwaysEnabledForDomains, certificatesConfiguration.AlwaysEnabledForDomains);
                Assert.Equal(alwaysEnabledForEmailAddresses, certificatesConfiguration.AlwaysEnabledForEmailAddresses);
            }
Exemple #6
0
            public async Task RefreshRefreshesObject()
            {
                // Arrange
                var emails           = new[] { "*****@*****.**" };
                var domains          = new[] { "example.com" };
                var exceptions       = new[] { "*****@*****.**" };
                var shouldTransforms = new[] { "*****@*****.**" };
                var orgTenantPairs   = new[] { new OrganizationTenantPair("example.com", "tenantId") };

                var loginDiscontinuationConfiguration = new LoginDiscontinuationConfiguration(emails, domains, exceptions, shouldTransforms, orgTenantPairs, isPasswordDiscontinuedForAll: false);
                var loginJson = JsonConvert.SerializeObject(loginDiscontinuationConfiguration);

                var isUIEnabledByDefault           = true;
                var alwaysEnabledForDomains        = new[] { "a" };
                var alwaysEnabledForEmailAddresses = new[] { "b" };

                var packageIdChecklistLength = 20000;
                var packageIdChecklistCacheExpireTimeInHours = 12.0;

                var certificatesConfiguration = new CertificatesConfiguration(
                    isUIEnabledByDefault,
                    alwaysEnabledForDomains,
                    alwaysEnabledForEmailAddresses);
                var certificatesJson = JsonConvert.SerializeObject(certificatesConfiguration);

                var symbolsConfiguration = new SymbolsConfiguration(
                    isSymbolsUploadEnabledForAll: true,
                    alwaysEnabledForDomains: alwaysEnabledForDomains,
                    alwaysEnabledForEmailAddresses: alwaysEnabledForEmailAddresses);
                var symbolsJson = JsonConvert.SerializeObject(symbolsConfiguration);

                var typosquattingConfiguration = new TyposquattingConfiguration(
                    packageIdChecklistLength: packageIdChecklistLength,
                    isCheckEnabled: true,
                    isBlockUsersEnabled: true,
                    packageIdChecklistCacheExpireTimeInHours: packageIdChecklistCacheExpireTimeInHours);
                var typosquattingJson = JsonConvert.SerializeObject(typosquattingConfiguration);

                var contentService = GetMock <IContentService>();

                contentService
                .Setup(x => x.GetContentItemAsync(GalleryConstants.ContentNames.LoginDiscontinuationConfiguration, It.IsAny <TimeSpan>()))
                .Returns(Task.FromResult <IHtmlString>(new HtmlString(loginJson)));

                contentService
                .Setup(x => x.GetContentItemAsync(GalleryConstants.ContentNames.CertificatesConfiguration, It.IsAny <TimeSpan>()))
                .Returns(Task.FromResult <IHtmlString>(new HtmlString(certificatesJson)));

                contentService
                .Setup(x => x.GetContentItemAsync(GalleryConstants.ContentNames.SymbolsConfiguration, It.IsAny <TimeSpan>()))
                .Returns(Task.FromResult <IHtmlString>(new HtmlString(symbolsJson)));

                contentService
                .Setup(x => x.GetContentItemAsync(GalleryConstants.ContentNames.TyposquattingConfiguration, It.IsAny <TimeSpan>()))
                .Returns(Task.FromResult <IHtmlString>(new HtmlString(typosquattingJson)));

                var service = GetService <ContentObjectService>();

                // Act
                await service.Refresh();

                loginDiscontinuationConfiguration = service.LoginDiscontinuationConfiguration as LoginDiscontinuationConfiguration;
                certificatesConfiguration         = service.CertificatesConfiguration as CertificatesConfiguration;
                symbolsConfiguration       = service.SymbolsConfiguration as SymbolsConfiguration;
                typosquattingConfiguration = service.TyposquattingConfiguration as TyposquattingConfiguration;

                // Assert
                Assert.True(loginDiscontinuationConfiguration.DiscontinuedForEmailAddresses.SequenceEqual(emails));
                Assert.True(loginDiscontinuationConfiguration.DiscontinuedForDomains.SequenceEqual(domains));
                Assert.True(loginDiscontinuationConfiguration.ExceptionsForEmailAddresses.SequenceEqual(exceptions));
                Assert.True(loginDiscontinuationConfiguration.EnabledOrganizationAadTenants.SequenceEqual(orgTenantPairs, new OrganizationTenantPairComparer()));

                Assert.True(certificatesConfiguration.IsUIEnabledByDefault);
                Assert.Equal(alwaysEnabledForDomains, certificatesConfiguration.AlwaysEnabledForDomains);
                Assert.Equal(alwaysEnabledForEmailAddresses, certificatesConfiguration.AlwaysEnabledForEmailAddresses);

                Assert.True(symbolsConfiguration.IsSymbolsUploadEnabledForAll);
                Assert.Equal(alwaysEnabledForDomains, symbolsConfiguration.AlwaysEnabledForDomains);
                Assert.Equal(alwaysEnabledForEmailAddresses, symbolsConfiguration.AlwaysEnabledForEmailAddresses);

                Assert.Equal(packageIdChecklistLength, typosquattingConfiguration.PackageIdChecklistLength);
                Assert.True(typosquattingConfiguration.IsCheckEnabled);
                Assert.True(typosquattingConfiguration.IsBlockUsersEnabled);
                Assert.Equal(packageIdChecklistCacheExpireTimeInHours, typosquattingConfiguration.PackageIdChecklistCacheExpireTimeInHours);
            }
        public void IsUIEnabledForUser_WithDefaults_ReturnsFalse()
        {
            var configuration = new CertificatesConfiguration();

            Assert.False(configuration.IsUIEnabledForUser(_user));
        }