From 0ce3c575f81740babe77798e22b08844d59adb8d Mon Sep 17 00:00:00 2001 From: greedyAI Date: Sun, 3 Jan 2021 22:39:34 -0800 Subject: [PATCH] Fixed more unit/ui tests --- .../StandardModeFunctionalTests.cs | 35 +++-- .../MultiWindowUnitTests.cpp | 123 +++++++++--------- 2 files changed, 85 insertions(+), 73 deletions(-) diff --git a/src/CalculatorUITests/StandardModeFunctionalTests.cs b/src/CalculatorUITests/StandardModeFunctionalTests.cs index d316da74..c1729411 100644 --- a/src/CalculatorUITests/StandardModeFunctionalTests.cs +++ b/src/CalculatorUITests/StandardModeFunctionalTests.cs @@ -78,7 +78,7 @@ namespace CalculatorUITests page.StandardOperators.NumberPad.Num2Button.Click(); page.StandardOperators.MinusButton.Click(); Assert.AreEqual("4", page.CalculatorResults.GetCalculatorResultText()); //verifies addition - Assert.AreEqual("2 + 2 Minus (", page.CalculatorResults.GetCalculatorExpressionText()); //verifies - button + Assert.AreEqual("4 Minus (", page.CalculatorResults.GetCalculatorExpressionText()); //verifies - button page.StandardOperators.NumberPad.Num3Button.Click(); Assert.AreEqual("3", page.CalculatorResults.GetCalculatorResultText()); //verifies 3 button page.StandardOperators.EqualButton.Click(); @@ -102,12 +102,12 @@ namespace CalculatorUITests Assert.AreEqual("5", page.CalculatorResults.GetCalculatorResultText()); //verifies 5 button page.StandardOperators.DivideButton.Click(); Assert.AreEqual("20", page.CalculatorResults.GetCalculatorResultText()); //verifies multiplication - Assert.AreEqual("4 × 5 ÷", page.CalculatorResults.GetCalculatorExpressionText()); //verifies ÷ button + Assert.AreEqual("20 ÷", page.CalculatorResults.GetCalculatorExpressionText()); //verifies ÷ button page.StandardOperators.NumberPad.Num6Button.Click(); Assert.AreEqual("6", page.CalculatorResults.GetCalculatorResultText()); //verifies 6 button page.StandardOperators.EqualButton.Click(); Assert.AreEqual("3.333333333333333", page.CalculatorResults.GetCalculatorResultText()); //verifies division - Assert.AreEqual("4 × 5 ÷ 6=", page.CalculatorResults.GetCalculatorExpressionText()); //verifies = button + Assert.AreEqual("20 ÷ 6=", page.CalculatorResults.GetCalculatorExpressionText()); //verifies = button } [TestMethod] @@ -173,11 +173,15 @@ namespace CalculatorUITests page.HistoryPanel.HistoryButton.Click(); var historyFlyoutItems = page.HistoryPanel.GetAllHistoryFlyoutListViewItems(); Assert.IsTrue(historyFlyoutItems[0].GetValue().Equals("3.333333333333333", StringComparison.InvariantCultureIgnoreCase)); //verifies History button - Assert.IsTrue(historyFlyoutItems[0].GetExpression().Equals("4 × 5 ÷ 6 =", StringComparison.InvariantCultureIgnoreCase)); //verifies History button + Assert.IsTrue(historyFlyoutItems[0].GetExpression().Equals("20 ÷ 6 =", StringComparison.InvariantCultureIgnoreCase)); //verifies History button + Assert.IsTrue(historyFlyoutItems[1].GetValue().Equals("20", StringComparison.InvariantCultureIgnoreCase)); //verifies History button + Assert.IsTrue(historyFlyoutItems[1].GetExpression().Equals("4 × 5 =", StringComparison.InvariantCultureIgnoreCase)); //verifies History button page.HistoryPanel.ResizeWindowToDisplayHistoryLabel(); var historyItems = page.HistoryPanel.GetAllHistoryListViewItems(); - Assert.IsTrue(historyItems[0].GetValue().Equals("3.333333333333333", StringComparison.InvariantCultureIgnoreCase)); - Assert.IsTrue(historyItems[0].GetExpression().Equals("4 × 5 ÷ 6 =", StringComparison.InvariantCultureIgnoreCase)); + Assert.IsTrue(historyFlyoutItems[0].GetValue().Equals("3.333333333333333", StringComparison.InvariantCultureIgnoreCase)); //verifies History button + Assert.IsTrue(historyFlyoutItems[0].GetExpression().Equals("20 ÷ 6 =", StringComparison.InvariantCultureIgnoreCase)); //verifies History button + Assert.IsTrue(historyFlyoutItems[1].GetValue().Equals("20", StringComparison.InvariantCultureIgnoreCase)); //verifies History button + Assert.IsTrue(historyFlyoutItems[1].GetExpression().Equals("4 × 5 =", StringComparison.InvariantCultureIgnoreCase)); //verifies History button page.HistoryPanel.ClearHistoryButton.Click(); Assert.IsNotNull(WinAppDriver.Instance.CalculatorSession.FindElementByAccessibilityId("HistoryEmpty")); //verifies the History panel's clear history button } @@ -251,7 +255,7 @@ namespace CalculatorUITests CalculatorApp.Window.SendKeys("2"); CalculatorApp.Window.SendKeys(Keys.Subtract); Assert.AreEqual("4", page.CalculatorResults.GetCalculatorResultText()); //verifies addition - Assert.AreEqual("2 + 2 Minus (", page.CalculatorResults.GetCalculatorExpressionText()); //verifies using subtraction key + Assert.AreEqual("4 Minus (", page.CalculatorResults.GetCalculatorExpressionText()); //verifies using subtraction key CalculatorApp.Window.SendKeys("3"); Assert.AreEqual("3", page.CalculatorResults.GetCalculatorResultText()); //verifies using 3 key page.StandardOperators.EqualButton.Click(); @@ -278,12 +282,12 @@ namespace CalculatorUITests Assert.AreEqual("5", page.CalculatorResults.GetCalculatorResultText()); //verifies using 5 key CalculatorApp.Window.SendKeys(Keys.Divide); Assert.AreEqual("20", page.CalculatorResults.GetCalculatorResultText()); //verifies multiplication - Assert.AreEqual("4 × 5 ÷", page.CalculatorResults.GetCalculatorExpressionText()); //verifies using divide key + Assert.AreEqual("20 ÷", page.CalculatorResults.GetCalculatorExpressionText()); //verifies using divide key CalculatorApp.Window.SendKeys("6"); Assert.AreEqual("6", page.CalculatorResults.GetCalculatorResultText()); //verifies using 6 key CalculatorApp.Window.SendKeys(Keys.Equal); Assert.AreEqual("3.333333333333333", page.CalculatorResults.GetCalculatorResultText()); //verifies division - Assert.AreEqual("4 × 5 ÷ 6=", page.CalculatorResults.GetCalculatorExpressionText()); //verifies equal key + Assert.AreEqual("20 ÷ 6=", page.CalculatorResults.GetCalculatorExpressionText()); //verifies equal key } [TestMethod] @@ -378,13 +382,18 @@ namespace CalculatorUITests page.HistoryPanel.ResizeWindowToDisplayHistoryButton(); CalculatorApp.Window.SendKeys(Keys.Control + "h" + Keys.Control); var historyFlyoutItems = page.HistoryPanel.GetAllHistoryFlyoutListViewItems(); - var historyExpression = Regex.Replace(historyFlyoutItems[0].GetExpression(), @"\s", string.Empty); + var historyExpression0 = Regex.Replace(historyFlyoutItems[0].GetExpression(), @"\s", string.Empty); + var historyExpression1 = Regex.Replace(historyFlyoutItems[1].GetExpression(), @"\s", string.Empty); Assert.IsTrue(historyFlyoutItems[0].GetValue().Equals("10", StringComparison.InvariantCultureIgnoreCase)); //verifies History button hotkeys - Assert.IsTrue(historyExpression.Equals("4×5÷2=", StringComparison.InvariantCultureIgnoreCase)); //verifies History button hotkeys + Assert.IsTrue(historyExpression0.Equals("20÷2=", StringComparison.InvariantCultureIgnoreCase)); //verifies History button hotkeys + Assert.IsTrue(historyFlyoutItems[1].GetValue().Equals("20", StringComparison.InvariantCultureIgnoreCase)); //verifies History button hotkeys + Assert.IsTrue(historyExpression1.Equals("4×5=", StringComparison.InvariantCultureIgnoreCase)); //verifies History button hotkeys page.HistoryPanel.ResizeWindowToDisplayHistoryLabel(); var historyItems = page.HistoryPanel.GetAllHistoryListViewItems(); Assert.IsTrue(historyItems[0].GetValue().Equals("10", StringComparison.InvariantCultureIgnoreCase)); - Assert.IsTrue(historyExpression.Equals("4×5÷2=", StringComparison.InvariantCultureIgnoreCase)); + Assert.IsTrue(historyItems[1].GetValue().Equals("20", StringComparison.InvariantCultureIgnoreCase)); + Assert.IsTrue(historyExpression0.Equals("20÷2=", StringComparison.InvariantCultureIgnoreCase)); //verifies History button hotkeys + Assert.IsTrue(historyExpression1.Equals("4×5=", StringComparison.InvariantCultureIgnoreCase)); //verifies History button hotkeys CalculatorApp.Window.SendKeys(Keys.Shift + Keys.Control + "d" + Keys.Control + Keys.Shift); Assert.IsNotNull(WinAppDriver.Instance.CalculatorSession.FindElementByAccessibilityId("HistoryEmpty")); //verifies the History panel's clear history button hotkeys } @@ -604,7 +613,7 @@ namespace CalculatorUITests CalculatorApp.Window.SendKeys("6"); page.StandardOperators.ClearEntryButton.Click(); Assert.AreEqual("0", page.CalculatorResults.GetCalculatorResultText()); - Assert.AreEqual("3 + 9 Minus (", page.CalculatorResults.GetCalculatorExpressionText()); + Assert.AreEqual("12 Minus (", page.CalculatorResults.GetCalculatorExpressionText()); //Verify Clear page.StandardOperators.NumberPad.Input(6); diff --git a/src/CalculatorUnitTests/MultiWindowUnitTests.cpp b/src/CalculatorUnitTests/MultiWindowUnitTests.cpp index 9b745a7d..f0dc7046 100644 --- a/src/CalculatorUnitTests/MultiWindowUnitTests.cpp +++ b/src/CalculatorUnitTests/MultiWindowUnitTests.cpp @@ -415,7 +415,7 @@ TEST_METHOD(MultipleStandardModesHistoryAddItemTest) { std::vector viewModels(2); - // Create 3 instances of StandardCalculatorViewModel in Standard and Scientific mode + // Create 2 instances of StandardCalculatorViewModel in Standard mode for (int i = 0; i < 2; i++) { viewModels[i] = ref new StandardCalculatorViewModel(); @@ -429,8 +429,67 @@ TEST_METHOD(MultipleStandardModesHistoryAddItemTest) // Perform Calculations on both the instances and check that the History items work independently - // Standard Mode: Expression 1+2= - TESTITEM standardModeTestItems[2][8] = { { { NumbersAndOperatorsEnum::IsScientificMode, L"0", L"" }, + TESTITEM standardModeTestItems[2][8] = { { { NumbersAndOperatorsEnum::IsStandardMode, L"0", L"" }, + { NumbersAndOperatorsEnum::Three, L"3", L"" }, + { NumbersAndOperatorsEnum::Add, L"3", L"3 + " }, + { NumbersAndOperatorsEnum::Two, L"2", L"3 + " }, + { NumbersAndOperatorsEnum::Multiply, L"5", L"5 * " }, + { NumbersAndOperatorsEnum::One, L"1", L"5 * " }, + { NumbersAndOperatorsEnum::Equals, L"5", L"" }, + { NumbersAndOperatorsEnum::None, L"", L"" } }, + { { NumbersAndOperatorsEnum::IsStandardMode, L"0", L"" }, + { NumbersAndOperatorsEnum::One, L"1", L"" }, + { NumbersAndOperatorsEnum::Add, L"1", L"1 + " }, + { NumbersAndOperatorsEnum::Two, L"2", L"1 + " }, + { NumbersAndOperatorsEnum::Multiply, L"3", L"3 * " }, + { NumbersAndOperatorsEnum::Three, L"3", L"3 * " }, + { NumbersAndOperatorsEnum::Equals, L"9", L"" }, + { NumbersAndOperatorsEnum::None, L"", L"" } } }; + + // Run the commands + for (int i = 0; i < 2; i++) + { + ValidateViewModelByCommands(viewModels[i], standardModeTestItems[i], true); + } + + String ^ expression[2][2] = { { L"5 " + UtfUtils::MUL + L" 1 =", L"3 + 2 =" }, { L"3 " + UtfUtils::MUL + L" 3 =", L"1 + 2 =" } }; + String ^ result[2][2] = { { L"5", L"5" }, { L"9", L"3" } }; + + // Assert for the history list items of the instances + for (int i = 0; i < 2; i++) + { + VERIFY_IS_TRUE(2 == viewModels[i]->HistoryVM->ItemsCount); + + for (int j = 0; j < 2 ; j++) + { + auto item = static_cast(viewModels[i]->HistoryVM->Items->GetAt(j)); + + VERIFY_ARE_EQUAL(expression[i][j], item->Expression); + VERIFY_ARE_EQUAL(result[i][j], item->Result); + } + } +} + +// Perform calculations on 2 separate instances of Scientific Modes and verify that their History list items are maintained separately +TEST_METHOD(MultipleScientificModesHistoryAddItemTest) +{ + std::vector viewModels(2); + + // Create 2 instances of StandardCalculatorViewModel in Scientific mode + for (int i = 0; i < 2; i++) + { + viewModels[i] = ref new StandardCalculatorViewModel(); + + // Scientific Mode + ChangeMode(viewModels[i], 1); + + // Validate that the history items list is initially empty + VERIFY_IS_TRUE(0 == viewModels[i]->HistoryVM->ItemsCount); + } + + // Perform Calculations on both the instances and check that the History items work independently + + TESTITEM scientificModeTestItems[2][8] = { { { NumbersAndOperatorsEnum::IsScientificMode, L"0", L"" }, { NumbersAndOperatorsEnum::One, L"1", L"" }, { NumbersAndOperatorsEnum::Add, L"1", L"1 + " }, { NumbersAndOperatorsEnum::Two, L"2", L"1 + " }, @@ -448,7 +507,7 @@ TEST_METHOD(MultipleStandardModesHistoryAddItemTest) // Run the commands for (int i = 0; i < 2; i++) { - ValidateViewModelByCommands(viewModels[i], standardModeTestItems[i], true); + ValidateViewModelByCommands(viewModels[i], scientificModeTestItems[i], true); } String ^ expression[] = { L"1 + 2 =", L"1 + 2 " + UtfUtils::MUL + L" 3 =" }; @@ -466,62 +525,6 @@ TEST_METHOD(MultipleStandardModesHistoryAddItemTest) } } -// Perform calculations on 2 separate instances of Scientific Modes and verify that their History list items are maintained separately -TEST_METHOD(MultipleScientificModesHistoryAddItemTest) -{ - std::vector viewModels(2); - - // Create 3 instances of StandardCalculatorViewModel in Standard and Scientific mode - for (int i = 0; i < 2; i++) - { - viewModels[i] = ref new StandardCalculatorViewModel(); - - // Scientific Mode - ChangeMode(viewModels[i], 1); - - // Validate that the history items list is initially empty - VERIFY_IS_TRUE(0 == viewModels[i]->HistoryVM->ItemsCount); - } - - // Perform Calculations on both the instances and check that the History items work independently - - // Standard Mode: Expression 1+2= - TESTITEM standardModeTestItems[2][8] = { { { NumbersAndOperatorsEnum::IsStandardMode, L"0", L"" }, - { NumbersAndOperatorsEnum::One, L"1", L"" }, - { NumbersAndOperatorsEnum::Add, L"1", L"1 + " }, - { NumbersAndOperatorsEnum::Two, L"2", L"1 + " }, - { NumbersAndOperatorsEnum::Equals, L"3", L"" }, - { NumbersAndOperatorsEnum::None, L"", L"" } }, - { { NumbersAndOperatorsEnum::IsStandardMode, L"0", L"" }, - { NumbersAndOperatorsEnum::One, L"1", L"" }, - { NumbersAndOperatorsEnum::Add, L"1", L"1 + " }, - { NumbersAndOperatorsEnum::Two, L"2", L"1 + " }, - { NumbersAndOperatorsEnum::Multiply, L"3", L"1 + 2 * " }, - { NumbersAndOperatorsEnum::Three, L"3", L"1 + 2 * " }, - { NumbersAndOperatorsEnum::Equals, L"9", L"" }, - { NumbersAndOperatorsEnum::None, L"", L"" } } }; - - // Run the commands - for (int i = 0; i < 2; i++) - { - ValidateViewModelByCommands(viewModels[i], standardModeTestItems[i], true); - } - - String ^ expression[] = { L"1 + 2 =", L"1 + 2 " + UtfUtils::MUL + L" 3 =" }; - String ^ result[] = { L"3", L"9" }; - - // Assert for the history list items of the instances - for (int i = 0; i < 2; i++) - { - VERIFY_IS_TRUE(1 == viewModels[i]->HistoryVM->ItemsCount); - - auto item = static_cast(viewModels[i]->HistoryVM->Items->GetAt(0)); - - VERIFY_ARE_EQUAL(expression[i], item->Expression); - VERIFY_ARE_EQUAL(result[i], item->Result); - } -} - // Perform calculations on 3 separate instances of Calculator and verify that their Memory List items are maintained separately TEST_METHOD(MultipleModesMemoryAddItemTest) {