using NUnit.Framework; using System.Collections.Generic; using TINK.Model; using TINK.ViewModel.Map; namespace UITest.Fixtures.ObjectTests.ViewModel.Map { [TestFixture] public class TestMapPageViewModel { /// /// Verifies that if Konrad is turned off in settings map page filter does no more contain Konrad option. /// [Test] public void TestGetFilterDictinaryMapPage_NoKonrad_TinkOnKonradOff() { var l_oDict = GroupFilterMapPageHelper.CreateUpdated( new GroupFilterMapPage(new Dictionary { { "TINK", FilterState.On }, { "Konrad", FilterState.Off } }), // Last map page filter (Konrad was still available but off) new List { "TINK" }); // Filters from settings page. Assert.AreEqual(1, l_oDict.Count); Assert.IsTrue(l_oDict.ContainsKey("TINK")); Assert.AreEqual(FilterState.On, l_oDict["TINK"]); } /// /// Verifies that if Konrad is turned off in settings map page filter does no more contain Konrad option. /// [Test] public void TestGetFilterDictinaryMapPage_NoKonrad_TinkOffKonradOn() { var l_oDict = GroupFilterMapPageHelper.CreateUpdated( new GroupFilterMapPage(new Dictionary { { "TINK", FilterState.Off }, { "Konrad", FilterState.On } }), // Last map page filter (Konrad was still available but off) new List { "TINK" }); // Filters from settings page. Assert.AreEqual(1, l_oDict.Count); Assert.IsTrue(l_oDict.ContainsKey("TINK")); Assert.AreEqual(FilterState.On, l_oDict["TINK"]); } /// /// Verifies that if TINK.* is turned off in settings map page filter does no more contain TINK option. /// [Test] public void TestGetFilterDictinaryMapPage_NoTink_TinkOnKonradOff() { var l_oDict = GroupFilterMapPageHelper.CreateUpdated( new GroupFilterMapPage(new Dictionary { { "TINK", FilterState.On }, { "Konrad", FilterState.Off } }), // Last map page filter (Konrad was still available but off) new List { "Konrad" }); // Filters from settings page. Assert.AreEqual(1, l_oDict.Count); Assert.IsTrue(l_oDict.ContainsKey("Konrad")); Assert.AreEqual(FilterState.On, l_oDict["Konrad"]); } /// /// Verifies that if Konrad is turned on in settings map page filter is updated with entry Konrad. /// [Test] public void TestGetFilterDictinaryMapPage_TinkOn() { var l_oDict = GroupFilterMapPageHelper.CreateUpdated( new GroupFilterMapPage(new Dictionary { { "TINK", FilterState.On } }), // Last map page filter (Konrad was still available but off) new List { "TINK", "Konrad" }); // Filters from settings page. Assert.AreEqual(2, l_oDict.Count); Assert.IsTrue(l_oDict.ContainsKey("TINK")); Assert.AreEqual(FilterState.Off, l_oDict["TINK"]); Assert.IsTrue(l_oDict.ContainsKey("Konrad")); Assert.AreEqual(FilterState.On, l_oDict["Konrad"]); } /// /// Verifies that if Konrad is turned on in settings map page filter is updated with entry Konrad. /// [Test] public void TestGetFilterDictinaryMapPage_TinkOff() { var l_oDict = GroupFilterMapPageHelper.CreateUpdated( new GroupFilterMapPage(new Dictionary { { "TINK", FilterState.Off } }), // Last map page filter (Konrad was still available but off) new List { "TINK", "Konrad" }); // Filters from settings page. Assert.AreEqual(2, l_oDict.Count); Assert.IsTrue(l_oDict.ContainsKey("TINK")); Assert.AreEqual(FilterState.Off, l_oDict["TINK"]); Assert.IsTrue(l_oDict.ContainsKey("Konrad")); Assert.AreEqual(FilterState.On, l_oDict["Konrad"]); } /// /// Verifies that map page filters are not touched if state is consitend. /// [Test] public void TestGetFilterDictinaryMapPage_AllOn_KonradActivated() { var l_oDict = GroupFilterMapPageHelper.CreateUpdated( new GroupFilterMapPage(new Dictionary { { "TINK", FilterState.Off }, { "Konrad", FilterState.On } }), // Last map page filter (Konrad was still available but off) new List { "TINK", "Konrad" }); // Filters from settings page. Assert.AreEqual(2, l_oDict.Count); Assert.IsTrue(l_oDict.ContainsKey("TINK")); Assert.AreEqual(FilterState.Off, l_oDict["TINK"]); Assert.IsTrue(l_oDict.ContainsKey("Konrad")); Assert.AreEqual(FilterState.On, l_oDict["Konrad"]); } /// /// Verifies that map page filters are not touched if state is consitend.. /// [Test] public void TestGetFilterDictinaryMapPage_AllOn_TinkActivated() { var l_oDict = GroupFilterMapPageHelper.CreateUpdated( new GroupFilterMapPage(new Dictionary { { "TINK", FilterState.On }, { "Konrad", FilterState.Off } }), // Last map page filter (Konrad was still available but off) new List { "TINK", "Konrad" }); // Filters from settings page. Assert.AreEqual(2, l_oDict.Count); Assert.IsTrue(l_oDict.ContainsKey("TINK")); Assert.AreEqual(FilterState.On, l_oDict["TINK"]); Assert.IsTrue(l_oDict.ContainsKey("Konrad")); Assert.AreEqual(FilterState.Off, l_oDict["Konrad"]); } /// /// Verifies that map page filters are not touched if state is consitend. /// [Test] public void TestGetFilterDictinaryMapPage_NullFilter() { var l_oDict = GroupFilterMapPageHelper.CreateUpdated( new GroupFilterMapPage(new Dictionary { { "TINK", FilterState.On }, { "Konrad", FilterState.Off } }), // Last map page filter (Konrad was still available but off) null); Assert.AreEqual(2, l_oDict.Count, "Do not apply any filter if filter value null is detected."); Assert.IsTrue(l_oDict.ContainsKey("TINK")); Assert.AreEqual(FilterState.On, l_oDict["TINK"]); Assert.IsTrue(l_oDict.ContainsKey("Konrad")); Assert.AreEqual(FilterState.Off, l_oDict["Konrad"]); l_oDict = GroupFilterMapPageHelper.CreateUpdated( null, null); Assert.IsNull(l_oDict, "Do not apply any filter if filter value null is detected."); } [Test] public void TestDoToggle() { var l_oFilter = new TinkKonradToggleViewModel(new GroupFilterMapPage(new Dictionary { { "TINK", FilterState.On }, { "Konrad", FilterState.Off } })); l_oFilter = new TinkKonradToggleViewModel(l_oFilter.FilterDictionary). DoToggle(); Assert.AreEqual("Konrad", l_oFilter.CurrentFilter); l_oFilter = new TinkKonradToggleViewModel(l_oFilter.FilterDictionary).DoToggle(); Assert.AreEqual("TINK", l_oFilter.CurrentFilter); } } }