diff --git a/PlexRequests.Core/SettingModels/LandingPageSettings.cs b/PlexRequests.Core/SettingModels/LandingPageSettings.cs index c765a7bf4..81a20e9dd 100644 --- a/PlexRequests.Core/SettingModels/LandingPageSettings.cs +++ b/PlexRequests.Core/SettingModels/LandingPageSettings.cs @@ -41,6 +41,6 @@ namespace PlexRequests.Core.SettingModels public DateTime NoticeEnd { get; set; } [JsonIgnore] - public bool NoticeActive => DateTime.Now > NoticeEnd || DateTime.Now < NoticeStart; + public bool NoticeActive => DateTime.Now < NoticeEnd && DateTime.Now > NoticeStart; } } \ No newline at end of file diff --git a/PlexRequests.UI.Tests/LandingPageTests.cs b/PlexRequests.UI.Tests/LandingPageTests.cs new file mode 100644 index 000000000..b8607fb3d --- /dev/null +++ b/PlexRequests.UI.Tests/LandingPageTests.cs @@ -0,0 +1,58 @@ +#region Copyright +// /************************************************************************ +// Copyright (c) 2016 Jamie Rees +// File: LandingPageTests.cs +// Created By: Jamie Rees +// +// Permission is hereby granted, free of charge, to any person obtaining +// a copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to +// permit persons to whom the Software is furnished to do so, subject to +// the following conditions: +// +// The above copyright notice and this permission notice shall be +// included in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// ************************************************************************/ +#endregion +using System; +using System.Collections.Generic; + +using NUnit.Framework; + +using PlexRequests.UI.Models; + +namespace PlexRequests.UI.Tests +{ + [TestFixture] + public class LandingPageTests + { + [TestCaseSource(nameof(NoticeEnabledData))] + public bool TestNoticeEnabled(DateTime start, DateTime end) + { + return new LandingPageViewModel {NoticeEnd = end, NoticeStart = start}.NoticeActive; + } + + private static IEnumerable NoticeEnabledData + { + get + { + yield return new TestCaseData(DateTime.Now, DateTime.Now.AddDays(1)).Returns(true); + yield return new TestCaseData(DateTime.Now, DateTime.Now.AddDays(99)).Returns(true); + yield return new TestCaseData(DateTime.Now.AddDays(2), DateTime.Now).Returns(false); // End in past + yield return new TestCaseData(DateTime.Now.AddDays(2), DateTime.Now.AddDays(3)).Returns(false); // Not started yet + yield return new TestCaseData(DateTime.Now.AddDays(-5), DateTime.Now.AddDays(-1)).Returns(false); // Finished yesterday + yield return new TestCaseData(DateTime.Now.AddMilliseconds(200), DateTime.Now.AddMilliseconds(900)).Returns(true); // Just about to start but not yet + } + } + } +} \ No newline at end of file diff --git a/PlexRequests.UI.Tests/PlexRequests.UI.Tests.csproj b/PlexRequests.UI.Tests/PlexRequests.UI.Tests.csproj index 14096f6ff..5ec37a74a 100644 --- a/PlexRequests.UI.Tests/PlexRequests.UI.Tests.csproj +++ b/PlexRequests.UI.Tests/PlexRequests.UI.Tests.csproj @@ -101,6 +101,7 @@ + diff --git a/PlexRequests.UI/Program.cs b/PlexRequests.UI/Program.cs index 7b97ddc2a..884dbcd59 100644 --- a/PlexRequests.UI/Program.cs +++ b/PlexRequests.UI/Program.cs @@ -41,16 +41,12 @@ using PlexRequests.Store.Repository; using System.Diagnostics; using System.IO; using System.Linq; -using System.Threading; using System.Windows.Forms; using CommandLine; -using PlexRequests.Helpers.Analytics; using PlexRequests.UI.Start; -using Action = PlexRequests.Helpers.Analytics.Action; - namespace PlexRequests.UI { class Program