Exemple #1
0
        public HomeController(IDashboardFactory dashboardFactory, IViewModelBuilder <DashboardViewModel, IDashboard> dashboardViewModelBuilder, IModelExporter <DashboardExportModel, IDashboard> dashboardModelExporter, IRedditAccessTokenProviderFactory redditAccessTokenProviderFactory, IContentHelper contentHelper, ICookieHelper cookieHelper)
        {
            if (dashboardFactory == null)
            {
                throw new ArgumentNullException(nameof(dashboardFactory));
            }
            if (dashboardViewModelBuilder == null)
            {
                throw new ArgumentNullException(nameof(dashboardViewModelBuilder));
            }
            if (dashboardModelExporter == null)
            {
                throw new ArgumentNullException(nameof(dashboardModelExporter));
            }
            if (redditAccessTokenProviderFactory == null)
            {
                throw new ArgumentNullException(nameof(redditAccessTokenProviderFactory));
            }
            if (contentHelper == null)
            {
                throw new ArgumentNullException(nameof(contentHelper));
            }
            if (cookieHelper == null)
            {
                throw new ArgumentNullException(nameof(cookieHelper));
            }

            _dashboardFactory                 = dashboardFactory;
            _dashboardViewModelBuilder        = dashboardViewModelBuilder;
            _dashboardModelExporter           = dashboardModelExporter;
            _redditAccessTokenProviderFactory = redditAccessTokenProviderFactory;
            _contentHelper = contentHelper;
            _cookieHelper  = cookieHelper;
        }
Exemple #2
0
        public async Task RenewRedditAccessTokenAsync_WhenRefreshTokenIsWhitespaces_ThrowsArgumentNullException()
        {
            const string refreshToken = "  ";

            IRedditAccessTokenProviderFactory sut = CreateSut();

            await sut.RenewRedditAccessTokenAsync(refreshToken);
        }
Exemple #3
0
        public async Task RenewRedditAccessTokenAsync_WhenRefreshTokenIsEmpty_ThrowsArgumentNullException()
        {
            string refreshToken = string.Empty;

            IRedditAccessTokenProviderFactory sut = CreateSut();

            await sut.RenewRedditAccessTokenAsync(refreshToken);
        }
Exemple #4
0
        public async Task GetRedditAccessTokenAsync_WhenCodeIsWhitespaces_ThrowsArgumentNullException()
        {
            const string code        = "  ";
            Uri          redirectUri = new Uri($"http://localhost/{Guid.NewGuid().ToString("D")}");

            IRedditAccessTokenProviderFactory sut = CreateSut();

            await sut.GetRedditAccessTokenAsync(code, redirectUri);
        }
Exemple #5
0
        public async Task GetRedditAccessTokenAsync_WhenRedirectUriIsNull_ThrowsArgumentNullException()
        {
            string    code        = Guid.NewGuid().ToString("D");
            const Uri redirectUri = null;

            IRedditAccessTokenProviderFactory sut = CreateSut();

            await sut.GetRedditAccessTokenAsync(code, redirectUri);
        }
Exemple #6
0
        public async Task AcquireRedditAuthorizationTokenAsync_WhenRedirectUriIsNull_ThrowsArgumentNullException()
        {
            string    state       = Guid.NewGuid().ToString("D");
            const Uri redirectUri = null;

            IRedditAccessTokenProviderFactory sut = CreateSut();

            await sut.AcquireRedditAuthorizationTokenAsync(state, redirectUri);
        }
Exemple #7
0
        public async Task AcquireRedditAuthorizationTokenAsync_WhenStateIsWhitespaces_ThrowsArgumentNullException()
        {
            const string state       = "  ";
            Uri          redirectUri = new Uri($"http://localhost/{Guid.NewGuid().ToString("D")}");

            IRedditAccessTokenProviderFactory sut = CreateSut();

            await sut.AcquireRedditAuthorizationTokenAsync(state, redirectUri);
        }
Exemple #8
0
        public async Task RenewRedditAccessTokenAsync_WhenCalled_AssertAuthenticationRedditClientSecretWasCalledOnConfiguration()
        {
            string refreshToken = Guid.NewGuid().ToString("D");

            IRedditAccessTokenProviderFactory sut = CreateSut();

            await sut.RenewRedditAccessTokenAsync(refreshToken);

            _configurationMock.Verify(m => m[It.Is <string>(value => string.Compare("Authentication:Reddit:ClientSecret", value, StringComparison.Ordinal) == 0)], Times.Once);
        }
Exemple #9
0
        public void RenewRedditAccessTokenAsync_WhenCalled_ReturnsTaskFromDataProviderFactory()
        {
            string refreshToken = Guid.NewGuid().ToString("D");

            Task <IRedditAccessToken>         renewRedditAccessTokenTask = Task.Run <IRedditAccessToken>(() => CreateRedditAccessToken());
            IRedditAccessTokenProviderFactory sut = CreateSut(renewRedditAccessTokenTask: renewRedditAccessTokenTask);

            Task <IRedditAccessToken> result = sut.RenewRedditAccessTokenAsync(refreshToken);

            Assert.AreEqual(renewRedditAccessTokenTask, result);
        }
Exemple #10
0
        public async Task GetRedditAccessTokenAsync_WhenCalled_AssertAuthenticationRedditClientIdWasCalledOnConfiguration()
        {
            string code        = Guid.NewGuid().ToString("D");
            Uri    redirectUri = new Uri($"http://localhost/{Guid.NewGuid().ToString("D")}");

            IRedditAccessTokenProviderFactory sut = CreateSut();

            await sut.GetRedditAccessTokenAsync(code, redirectUri);

            _configurationMock.Verify(m => m[It.Is <string>(value => string.Compare("Authentication:Reddit:ClientId", value, StringComparison.Ordinal) == 0)], Times.Once);
        }
Exemple #11
0
        public void GetRedditAccessTokenAsync_WhenCalled_ReturnsTaskFromDataProviderFactory()
        {
            string code        = Guid.NewGuid().ToString("D");
            Uri    redirectUri = new Uri($"http://localhost/{Guid.NewGuid().ToString("D")}");

            Task <IRedditAccessToken>         getRedditAccessTokenTask = Task.Run <IRedditAccessToken>(() => CreateRedditAccessToken());
            IRedditAccessTokenProviderFactory sut = CreateSut(getRedditAccessTokenTask: getRedditAccessTokenTask);

            Task <IRedditAccessToken> result = sut.GetRedditAccessTokenAsync(code, redirectUri);

            Assert.AreEqual(getRedditAccessTokenTask, result);
        }
Exemple #12
0
        public void AcquireRedditAuthorizationTokenAsync_WhenCalled_ReturnsTaskFromDataProviderFactory()
        {
            string state       = Guid.NewGuid().ToString("D");
            Uri    redirectUri = new Uri($"http://localhost/{Guid.NewGuid().ToString("D")}");

            Task <Uri> acquireRedditAuthorizationTokenTask = Task.Run <Uri>(() => new Uri($"http://localhost/{Guid.NewGuid().ToString("D")}"));
            IRedditAccessTokenProviderFactory sut          = CreateSut(acquireRedditAuthorizationTokenTask: acquireRedditAuthorizationTokenTask);

            Task <Uri> result = sut.AcquireRedditAuthorizationTokenAsync(state, redirectUri);

            Assert.AreEqual(acquireRedditAuthorizationTokenTask, result);
        }
Exemple #13
0
        public async Task RenewRedditAccessTokenAsync_WhenCalled_AssertRenewRedditAccessTokenAsyncWasCalledOnDataProviderFactory()
        {
            string refreshToken = Guid.NewGuid().ToString("D");

            string clientId     = Guid.NewGuid().ToString("D");
            string clientSecret = Guid.NewGuid().ToString("D");
            IRedditAccessTokenProviderFactory sut = CreateSut(clientId: clientId, clientSecret: clientSecret);

            await sut.RenewRedditAccessTokenAsync(refreshToken);

            _dataProviderFactoryMock.Verify(m => m.RenewRedditAccessTokenAsync(
                                                It.Is <string>(value => string.Compare(clientId, value, StringComparison.Ordinal) == 0),
                                                It.Is <string>(value => string.Compare(clientSecret, value, StringComparison.Ordinal) == 0),
                                                It.Is <string>(value => string.Compare(refreshToken, value, StringComparison.Ordinal) == 0)),
                                            Times.Once);
        }
Exemple #14
0
        public async Task AcquireRedditAuthorizationTokenAsync_WhenCalled_AssertAcquireRedditAuthorizationTokenAsyncWasCalledOnDataProviderFactory()
        {
            string state       = Guid.NewGuid().ToString("D");
            Uri    redirectUri = new Uri($"http://localhost/{Guid.NewGuid().ToString("D")}");

            string clientId = Guid.NewGuid().ToString("D");
            IRedditAccessTokenProviderFactory sut = CreateSut(clientId: clientId);

            await sut.AcquireRedditAuthorizationTokenAsync(state, redirectUri);

            _dataProviderFactoryMock.Verify(m => m.AcquireRedditAuthorizationTokenAsync(
                                                It.Is <string>(value => string.Compare(clientId, value, StringComparison.Ordinal) == 0),
                                                It.Is <string>(value => string.Compare(state, value, StringComparison.Ordinal) == 0),
                                                It.Is <Uri>(value => value == redirectUri)),
                                            Times.Once);
        }