public async Task BuildAsync_WhenCalled_AssertToCookieWasCalledOnCookieHelperWithDashboardSettingsViewModel() { int numberOfNews = _random.Next(25, 50); bool useReddit = _random.Next(100) > 50; bool includeNsfwContent = _random.Next(100) > 50; bool onlyNsfwContent = _random.Next(100) > 50; IRedditAccessToken redditAccessToken = CreateRedditAccessToken(); IDashboardSettings dashboardSettings = CreateDashboardSettings(numberOfNews, useReddit, includeNsfwContent, onlyNsfwContent, redditAccessToken); IViewModelBuilder <DashboardSettingsViewModel, IDashboardSettings> sut = CreateSut(); DashboardSettingsViewModel result = await sut.BuildAsync(dashboardSettings); _cookieHelperMock.Verify(m => m.ToCookie(It.Is <DashboardSettingsViewModel>(value => value == result)), Times.Once); }
public async Task BuildAsync_WhenCalled_ReturnsDashboard() { IDashboardSettings dashboardSettings = CreateDashboardSettings(); List <ISystemError> systemErrors = BuildSystemErrors(_random.Next(1, 10)); IDashboardFactory sut = CreateSut(systemErrors: systemErrors); IDashboard dashboard = await sut.BuildAsync(dashboardSettings); Assert.IsNotNull(dashboard); Assert.IsNotNull(dashboard.SystemErrors); Assert.AreEqual(systemErrors.Count, dashboard.SystemErrors.Count()); Assert.IsNotNull(dashboard.Settings); Assert.AreEqual(dashboardSettings, dashboard.Settings); systemErrors.ForEach(systemError => Assert.IsTrue(dashboard.SystemErrors.Contains(systemError))); }
public async Task BuildAsync_WhenCalled_AssertToCookieWasCalledOnCookieHelperWithDashboardViewModel() { List <INews> newsCollection = CreateNewsCollection(_random.Next(50, 75)).ToList(); List <ISystemError> systemErrorCollection = CreateSystemErrorCollection(_random.Next(10, 15)).ToList(); IDashboardSettings dashboardSettings = CreateDashboardSettings(); IRedditAuthenticatedUser redditAuthenticatedUser = CreateRedditAuthenticatedUser(); List <IRedditSubreddit> redditSubredditCollection = CreateRedditSubredditCollection(_random.Next(10, 25)).ToList(); List <IRedditLink> redditLinkCollection = CreateRedditLinkCollection(_random.Next(50, 75)).ToList(); IDashboard dashboard = CreateDashboard(newsCollection: newsCollection, systemErrorCollection: systemErrorCollection, dashboardSettings: dashboardSettings, redditAuthenticatedUser: redditAuthenticatedUser, redditSubredditCollection: redditSubredditCollection, redditLinkCollection: redditLinkCollection); DashboardSettingsViewModel dashboardSettingsViewModel = CreateDashboardSettingsViewModel(); ObjectViewModel <IRedditAuthenticatedUser> objectViewModelForRedditAuthenticatedUser = CreateObjectViewModel <IRedditAuthenticatedUser>(redditAuthenticatedUser, DateTime.Now.AddDays(_random.Next(1, 365) * -1).AddMinutes(_random.Next(-120, 120))); IViewModelBuilder <DashboardViewModel, IDashboard> sut = CreateSut(dashboardSettingsViewModel: dashboardSettingsViewModel, objectViewModelForRedditAuthenticatedUser: objectViewModelForRedditAuthenticatedUser); DashboardViewModel result = await sut.BuildAsync(dashboard); _cookieHelperMock.Verify(m => m.ToCookie(It.Is <DashboardViewModel>(value => value == result)), Times.Once); }
public void ToDashboardSettings_WhenCalled_ReturnsInitializedDashboardSettings() { int numberOfNews = _random.Next(25, 50); bool useReddit = _random.Next(100) > 50; bool includeNsfwContent = _random.Next(100) > 50; bool onlyNsfwContent = _random.Next(100) > 50; string redditAccessToken = CreateReddditAccessToken().ToBase64(); OSDevGrp.MyDashboard.Web.Models.DashboardSettingsViewModel sut = CreateSut(numberOfNews, useReddit, includeNsfwContent, onlyNsfwContent, redditAccessToken); IDashboardSettings result = sut.ToDashboardSettings(); Assert.IsNotNull(result); Assert.IsInstanceOfType(result, typeof(DashboardSettings)); Assert.AreEqual(numberOfNews, result.NumberOfNews); Assert.AreEqual(useReddit, result.UseReddit); Assert.AreEqual(includeNsfwContent, result.IncludeNsfwContent); Assert.AreEqual(onlyNsfwContent, result.OnlyNsfwContent); Assert.IsNotNull(result.RedditAccessToken); }
public async Task BuildAsync_WhenCalled_AssertBuildAsyncWasCalledOnEachDashboardContentBuilderWhichShouldBuild() { IDashboardSettings dashboardSettings = CreateDashboardSettings(); IDashboardFactory sut = CreateSut(); await sut.BuildAsync(dashboardSettings); _dashboardContentBuilder1Mock.Verify(m => m.BuildAsync( It.Is <IDashboardSettings>(value => value == dashboardSettings), It.IsNotNull <IDashboard>()), Times.Once); _dashboardContentBuilder2Mock.Verify(m => m.BuildAsync( It.Is <IDashboardSettings>(value => value == dashboardSettings), It.IsNotNull <IDashboard>()), Times.Once); _dashboardContentBuilder3Mock.Verify(m => m.BuildAsync( It.Is <IDashboardSettings>(value => value == dashboardSettings), It.IsNotNull <IDashboard>()), Times.Once); }
public async Task BuildAsync_WhenCalled_ReturnsInitializedDashboardSettingsViewModel() { int numberOfNews = _random.Next(25, 50); bool useReddit = _random.Next(100) > 50; bool includeNsfwContent = _random.Next(100) > 50; bool onlyNsfwContent = _random.Next(100) > 50; IRedditAccessToken redditAccessToken = CreateRedditAccessToken(); IDashboardSettings dashboardSettings = CreateDashboardSettings(numberOfNews, useReddit, includeNsfwContent, onlyNsfwContent, redditAccessToken); IViewModelBuilder <DashboardSettingsViewModel, IDashboardSettings> sut = CreateSut(); DashboardSettingsViewModel result = await sut.BuildAsync(dashboardSettings); Assert.IsNotNull(result); Assert.AreEqual(numberOfNews, result.NumberOfNews); Assert.AreEqual(useReddit, result.UseReddit); Assert.IsFalse(result.AllowNsfwContent); if (includeNsfwContent) { Assert.IsTrue(result.IncludeNsfwContent.HasValue); Assert.IsTrue(result.IncludeNsfwContent.Value); } else { Assert.IsFalse(result.IncludeNsfwContent.HasValue); Assert.IsNull(result.IncludeNsfwContent); } if (onlyNsfwContent) { Assert.IsTrue(result.OnlyNsfwContent.HasValue); Assert.IsTrue(result.OnlyNsfwContent.Value); } else { Assert.IsFalse(result.OnlyNsfwContent.HasValue); Assert.IsNull(result.OnlyNsfwContent); } Assert.IsNotNull(result.RedditAccessToken); Assert.IsFalse(result.ExportData); }
public async Task BuildAsync(IDashboardSettings dashboardSettings, IDashboard dashboard) { if (dashboardSettings == null) { throw new ArgumentNullException(nameof(dashboardSettings)); } if (dashboard == null) { throw new ArgumentNullException(nameof(dashboard)); } try { IEnumerable <INews> news = await _newLogic.GetNewsAsync(dashboardSettings.NumberOfNews); dashboard.Replace(news); } catch (Exception ex) { await _exceptionHandler.HandleAsync(ex); } }
public void ToDashboardSettings_WhenCalledWhereRedditAccessTokenIsBase64_ReturnsInitializedDashboardSettings() { string accessToken = Guid.NewGuid().ToString("D"); string tokenType = Guid.NewGuid().ToString("D"); int expiresIn = _random.Next(60, 300); string scope = Guid.NewGuid().ToString("D"); string refreshToken = Guid.NewGuid().ToString("D"); DateTime received = DateTime.UtcNow; string redditAccessToken = CreateReddditAccessToken(accessToken, tokenType, expiresIn, scope, refreshToken, received).ToBase64(); OSDevGrp.MyDashboard.Web.Models.DashboardSettingsViewModel sut = CreateSut(redditAccessToken: redditAccessToken); IDashboardSettings result = sut.ToDashboardSettings(); Assert.IsNotNull(result); Assert.IsInstanceOfType(result, typeof(DashboardSettings)); Assert.IsNotNull(result.RedditAccessToken); Assert.IsInstanceOfType(result.RedditAccessToken, typeof(RedditAccessToken)); Assert.AreEqual(accessToken, result.RedditAccessToken.AccessToken); Assert.AreEqual(tokenType, result.RedditAccessToken.TokenType); Assert.AreEqual(received.ToLocalTime().AddSeconds(expiresIn).ToString(), result.RedditAccessToken.Expires.ToString()); Assert.AreEqual(scope, result.RedditAccessToken.Scope); Assert.AreEqual(refreshToken, result.RedditAccessToken.RefreshToken); }
public void Constructor_WhenCalled_ExpectNumberOfNewsEqualTo50() { IDashboardSettings sut = CreateSut(); Assert.AreEqual(50, sut.NumberOfNews); }
public Config(IMonitorSettings monitor, IDashboardSettings dashboard, IThrottlingSettings throttlingSettings) { Monitor = monitor; Dashboard = dashboard; Throttling = throttlingSettings.Throttling; }
private Mock <IDashboard> CreateDashboardMock(IEnumerable <INews> newsCollection = null, IEnumerable <ISystemError> systemErrorCollection = null, IDashboardSettings dashboardSettings = null, IRedditAuthenticatedUser redditAuthenticatedUser = null, IEnumerable <IRedditSubreddit> redditSubredditCollection = null, IEnumerable <IRedditLink> redditLinkCollection = null, IDashboardRules dashboardRules = null) { Mock <IDashboard> dashboardMock = new Mock <IDashboard>(); dashboardMock.Setup(m => m.News) .Returns(newsCollection ?? CreateNewsCollection(_random.Next(50, 100))); dashboardMock.Setup(m => m.SystemErrors) .Returns(systemErrorCollection ?? CreateSystemErrorCollection(_random.Next(5, 10))); dashboardMock.Setup(m => m.Settings) .Returns(dashboardSettings); dashboardMock.Setup(m => m.RedditAuthenticatedUser) .Returns(redditAuthenticatedUser); dashboardMock.Setup(m => m.RedditSubreddits) .Returns(redditSubredditCollection ?? CreateRedditSubredditCollection(_random.Next(10, 25))); dashboardMock.Setup(m => m.RedditLinks) .Returns(redditLinkCollection ?? CreateRedditLinkCollection(_random.Next(50, 100))); dashboardMock.Setup(m => m.Rules) .Returns(dashboardRules ?? CreateDashboardRules()); return(dashboardMock); }
public ConfigController(IMonitorSettings monitorSettings, IDashboardSettings dashboardSettings, IThrottlingSettings throttlingSettings) { _config = new Config(monitorSettings, dashboardSettings, throttlingSettings); }
private IDashboard CreateDashboard(IEnumerable <INews> newsCollection = null, IEnumerable <ISystemError> systemErrorCollection = null, IDashboardSettings dashboardSettings = null, IRedditAuthenticatedUser redditAuthenticatedUser = null, IEnumerable <IRedditSubreddit> redditSubredditCollection = null, IEnumerable <IRedditLink> redditLinkCollection = null, IDashboardRules dashboardRules = null) { return(CreateDashboardMock(newsCollection, systemErrorCollection, dashboardSettings, redditAuthenticatedUser, redditSubredditCollection, redditLinkCollection, dashboardRules).Object); }
public ConfigController(IMonitorSettings monitorSettings, IDashboardSettings dashboardSettings, IThrottlingSettings throttlingSettings) { _config = new Config(monitorSettings, dashboardSettings, throttlingSettings); }
public Config(IMonitorSettings monitor, IDashboardSettings dashboard, IThrottlingSettings throttlingSettings) { Monitor = monitor; Dashboard = dashboard; Throttling = throttlingSettings.Throttling; }
public void Constructor_WhenCalled_ExpectOnlyNsfwContentToFalse() { IDashboardSettings sut = CreateSut(); Assert.IsFalse(sut.OnlyNsfwContent); }
public void Constructor_WhenCalled_ExpectRedditAccessTokenEqualToNull() { IDashboardSettings sut = CreateSut(); Assert.IsNull(sut.RedditAccessToken); }
public void Constructor_WhenCalled_ExpectUseRedditEqualToFalse() { IDashboardSettings sut = CreateSut(); Assert.IsFalse(sut.UseReddit); }