Ejemplo n.º 1
0
        public void ConfigureServices(IServiceCollection services)
        {
            //services.AddRazorPages();

            services.AddRouting();

            services.AddAuthentication(options =>
            {
                options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;
            })

            .AddCookie(options =>
            {
                options.LoginPath  = "/signin";
                options.LogoutPath = "/signout";
            })

            .AddTwitch(options =>
            {
                options.ClientId     = SecretReader.GetValue("client_id");
                options.ClientSecret = SecretReader.GetValue("client_secret");
                options.CallbackPath = "/processlogin";
            });

            services.AddDbContext <AppDbContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")).UseLazyLoadingProxies());

            services.AddMvc().SetCompatibilityVersion(Microsoft.AspNetCore.Mvc.CompatibilityVersion.Latest);
        }
Ejemplo n.º 2
0
            public async Task FetchesAnUncachedSecret()
            {
                var actual = await Target.GetSecretObjectAsync(SecretNameA);

                Assert.Same(SecretA.Object, actual);
                SecretReader.Verify(x => x.GetSecretObjectAsync(SecretNameA), Times.Once);
            }
Ejemplo n.º 3
0
            public async Task DoesNothingWithEmptyCache()
            {
                await Target.RefreshAsync(CancellationToken.None);

                SecretReader.Verify(x => x.GetSecretAsync(It.IsAny <string>()), Times.Never);
                SecretReader.Verify(x => x.GetSecretObjectAsync(It.IsAny <string>()), Times.Never);
            }
Ejemplo n.º 4
0
            public async Task FetchesAnUncachedSecret()
            {
                var actual = await Target.GetSecretAsync(SecretNameA);

                Assert.Same(SecretA.Object.Value, actual);
                SecretReader.Verify(x => x.GetSecretAsync(It.IsAny <string>()), Times.Never);
                SecretReader.Verify(x => x.GetSecretObjectAsync(SecretNameA), Times.Once);
            }
Ejemplo n.º 5
0
            public async Task CachesLatestValue()
            {
                await Target.GetSecretAsync(SecretNameA);

                SecretReader.Setup(x => x.GetSecretObjectAsync(SecretNameA)).ReturnsAsync(() => SecretB.Object);

                await Target.RefreshAsync(CancellationToken.None);

                var secretObject = await Target.GetSecretObjectAsync(SecretNameA);

                Assert.Same(SecretB.Object, secretObject);
            }
Ejemplo n.º 6
0
            public async Task DoesNotSwitchThreadIfAlreadyCached()
            {
                await Target.GetSecretObjectAsync(SecretNameA);

                SecretReader.Invocations.Clear();
                var threadId = Thread.CurrentThread.ManagedThreadId;

                await Target.GetSecretObjectAsync(SecretNameA);

                Assert.Equal(threadId, Thread.CurrentThread.ManagedThreadId);
                SecretReader.Verify(x => x.GetSecretAsync(It.IsAny <string>()), Times.Never);
                SecretReader.Verify(x => x.GetSecretObjectAsync(It.IsAny <string>()), Times.Never);
            }
Ejemplo n.º 7
0
            public async Task RefreshesAllNames()
            {
                await Target.GetSecretAsync(SecretNameA);

                await Target.GetSecretAsync(SecretNameB);

                SecretReader.Invocations.Clear();

                await Target.RefreshAsync(CancellationToken.None);

                SecretReader.Verify(x => x.GetSecretAsync(It.IsAny <string>()), Times.Never);
                SecretReader.Verify(x => x.GetSecretObjectAsync(SecretNameA), Times.Once);
                SecretReader.Verify(x => x.GetSecretObjectAsync(SecretNameB), Times.Once);
            }
Ejemplo n.º 8
0
            public async Task RespectsTheToken()
            {
                await Target.GetSecretAsync(SecretNameA);

                SecretReader.Invocations.Clear();
                var cts   = new CancellationTokenSource();
                var token = cts.Token;

                cts.Cancel();

                await Target.RefreshAsync(token);

                SecretReader.Verify(x => x.GetSecretAsync(It.IsAny <string>()), Times.Never);
                SecretReader.Verify(x => x.GetSecretObjectAsync(It.IsAny <string>()), Times.Never);
            }