public void ToCookie(DashboardSettingsViewModel dashboardSettingsViewModel) { if (dashboardSettingsViewModel == null) { throw new ArgumentNullException(nameof(dashboardSettingsViewModel)); } StoreCookie(DashboardSettingsViewModel.CookieName, dashboardSettingsViewModel, viewModel => _contentHelper.ToBase64String(viewModel), (viewModel, secureHttpRequest) => { DateTime expires = DateTime.Now.AddHours(8); if (string.IsNullOrWhiteSpace(viewModel.RedditAccessToken) == false) { IRedditAccessToken redditAccessToken = RedditAccessToken.Create(viewModel.RedditAccessToken); if (redditAccessToken != null && redditAccessToken.Expires <= expires) { expires = redditAccessToken.Expires; } } return(new CookieOptions { Expires = expires, Secure = secureHttpRequest, SameSite = SameSiteMode.None }); }); }
public void ToBase64String_WhenCalledWithDashboardSettingsViewModel_AssertProtectWasCalledOnDataProtector() { IContentHelper sut = CreateSut(); DashboardSettingsViewModel dashboardSettingsViewModel = BuildDashboardSettingsViewModel(); sut.ToBase64String(dashboardSettingsViewModel); _dataProtectorMock.Verify(m => m.Protect(It.Is <byte[]>(value => value != null && value.Length > 0)), Times.Once); }
public void ToBase64String_WhenCalledWithStringValue_AssertProtectWasCalledOnDataProtector() { IContentHelper sut = CreateSut(); string stringValue = Guid.NewGuid().ToString("D"); sut.ToBase64String(stringValue); _dataProtectorMock.Verify(m => m.Protect(It.Is <byte[]>(value => value != null && string.CompareOrdinal(Encoding.UTF8.GetString(value), stringValue) == 0)), Times.Once); }
public void ToBase64String_WhenCalledWithDashboardSettingsViewModel_AssertCreateProtectorWasCalledOnDataProtectionProviderWithSettingsProtection() { IContentHelper sut = CreateSut(); DashboardSettingsViewModel dashboardSettingsViewModel = BuildDashboardSettingsViewModel(); sut.ToBase64String(dashboardSettingsViewModel); _dataProtectionProviderMock.Verify(m => m.CreateProtector(It.Is <string>(value => string.CompareOrdinal(value, "SettingsProtection") == 0)), Times.Once); }
public void ToBase64String_WhenCalledWithStringValue_AssertCreateProtectorWasCalledOnDataProtectionProviderWithValueProtection() { IContentHelper sut = CreateSut(); string stringValue = Guid.NewGuid().ToString("D"); sut.ToBase64String(stringValue); _dataProtectionProviderMock.Verify(m => m.CreateProtector(It.Is <string>(value => string.CompareOrdinal(value, "ValueProtection") == 0)), Times.Once); }
public void ToBase64String_WhenCalledWithDashboardSettingsViewModel_ReturnsBase64String() { IContentHelper sut = CreateSut(); DashboardSettingsViewModel dashboardSettingsViewModel = BuildDashboardSettingsViewModel(); string result = sut.ToBase64String(dashboardSettingsViewModel); Assert.IsNotNull(result); Assert.IsTrue(result.Length > 0); Assert.IsTrue(result.Trim().Length % 4 == 0 && _base64StringRegex.IsMatch(result.Trim())); }
public void ToBase64String_WhenCalledWithStringValue_ReturnsBase64String() { IContentHelper sut = CreateSut(); string stringValue = Guid.NewGuid().ToString("D"); string result = sut.ToBase64String(stringValue); Assert.IsNotNull(result); Assert.IsTrue(result.Length > 0); Assert.IsTrue(result.Trim().Length % 4 == 0 && _base64StringRegex.IsMatch(result.Trim())); }
private async Task <IActionResult> AcquireRedditAuthorizationTokenAsync(DashboardSettingsViewModel dashboardSettingsViewModel) { if (dashboardSettingsViewModel == null) { throw new ArgumentNullException(nameof(dashboardSettingsViewModel)); } string dashboardSettingsViewModelAsBase64 = _contentHelper.ToBase64String(dashboardSettingsViewModel); Uri redirectUrl = new Uri(_contentHelper.AbsoluteUrl("RedditCallback", "Home")); Uri acquireRedditAuthorizationTokenUrl = await _redditAccessTokenProviderFactory.AcquireRedditAuthorizationTokenAsync(dashboardSettingsViewModelAsBase64, redirectUrl); return(Redirect(acquireRedditAuthorizationTokenUrl.AbsoluteUri)); }
public void ToBase64String_WhenStringValueIsEmpty_ThrowsArgumentNullException() { IContentHelper sut = CreateSut(); sut.ToBase64String(string.Empty); }
public void ToBase64String_WhenDashboardSettingsViewModelIsNull_ThrowsArgumentNullException() { IContentHelper sut = CreateSut(); sut.ToBase64String((DashboardSettingsViewModel)null); }
public void ToBase64String_WhenStringValueIsWhiteSpaces_ThrowsArgumentNullException() { IContentHelper sut = CreateSut(); sut.ToBase64String(" "); }
public static string GetBuildUrl(this DashboardSettingsViewModel dashboardSettingsViewModel, IContentHelper contentHelper) { if (dashboardSettingsViewModel == null) { throw new ArgumentNullException(nameof(dashboardSettingsViewModel)); } if (contentHelper == null) { throw new ArgumentNullException(nameof(contentHelper)); } return(contentHelper.AbsoluteUrl("Build", "Home", new { DashboardSettings = contentHelper.ToBase64String(dashboardSettingsViewModel) })); }