Fixed more unit/ui tests

This commit is contained in:
greedyAI 2021-01-03 22:39:34 -08:00
commit 0ce3c575f8
2 changed files with 85 additions and 73 deletions

View file

@ -78,7 +78,7 @@ namespace CalculatorUITests
page.StandardOperators.NumberPad.Num2Button.Click(); page.StandardOperators.NumberPad.Num2Button.Click();
page.StandardOperators.MinusButton.Click(); page.StandardOperators.MinusButton.Click();
Assert.AreEqual("4", page.CalculatorResults.GetCalculatorResultText()); //verifies addition 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(); page.StandardOperators.NumberPad.Num3Button.Click();
Assert.AreEqual("3", page.CalculatorResults.GetCalculatorResultText()); //verifies 3 button Assert.AreEqual("3", page.CalculatorResults.GetCalculatorResultText()); //verifies 3 button
page.StandardOperators.EqualButton.Click(); page.StandardOperators.EqualButton.Click();
@ -102,12 +102,12 @@ namespace CalculatorUITests
Assert.AreEqual("5", page.CalculatorResults.GetCalculatorResultText()); //verifies 5 button Assert.AreEqual("5", page.CalculatorResults.GetCalculatorResultText()); //verifies 5 button
page.StandardOperators.DivideButton.Click(); page.StandardOperators.DivideButton.Click();
Assert.AreEqual("20", page.CalculatorResults.GetCalculatorResultText()); //verifies multiplication 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(); page.StandardOperators.NumberPad.Num6Button.Click();
Assert.AreEqual("6", page.CalculatorResults.GetCalculatorResultText()); //verifies 6 button Assert.AreEqual("6", page.CalculatorResults.GetCalculatorResultText()); //verifies 6 button
page.StandardOperators.EqualButton.Click(); page.StandardOperators.EqualButton.Click();
Assert.AreEqual("3.333333333333333", page.CalculatorResults.GetCalculatorResultText()); //verifies division 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] [TestMethod]
@ -173,11 +173,15 @@ namespace CalculatorUITests
page.HistoryPanel.HistoryButton.Click(); page.HistoryPanel.HistoryButton.Click();
var historyFlyoutItems = page.HistoryPanel.GetAllHistoryFlyoutListViewItems(); var historyFlyoutItems = page.HistoryPanel.GetAllHistoryFlyoutListViewItems();
Assert.IsTrue(historyFlyoutItems[0].GetValue().Equals("3.333333333333333", StringComparison.InvariantCultureIgnoreCase)); //verifies History button 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(); page.HistoryPanel.ResizeWindowToDisplayHistoryLabel();
var historyItems = page.HistoryPanel.GetAllHistoryListViewItems(); var historyItems = page.HistoryPanel.GetAllHistoryListViewItems();
Assert.IsTrue(historyItems[0].GetValue().Equals("3.333333333333333", StringComparison.InvariantCultureIgnoreCase)); Assert.IsTrue(historyFlyoutItems[0].GetValue().Equals("3.333333333333333", StringComparison.InvariantCultureIgnoreCase)); //verifies History button
Assert.IsTrue(historyItems[0].GetExpression().Equals("4 × 5 ÷ 6 =", StringComparison.InvariantCultureIgnoreCase)); 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(); page.HistoryPanel.ClearHistoryButton.Click();
Assert.IsNotNull(WinAppDriver.Instance.CalculatorSession.FindElementByAccessibilityId("HistoryEmpty")); //verifies the History panel's clear history button 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("2");
CalculatorApp.Window.SendKeys(Keys.Subtract); CalculatorApp.Window.SendKeys(Keys.Subtract);
Assert.AreEqual("4", page.CalculatorResults.GetCalculatorResultText()); //verifies addition 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"); CalculatorApp.Window.SendKeys("3");
Assert.AreEqual("3", page.CalculatorResults.GetCalculatorResultText()); //verifies using 3 key Assert.AreEqual("3", page.CalculatorResults.GetCalculatorResultText()); //verifies using 3 key
page.StandardOperators.EqualButton.Click(); page.StandardOperators.EqualButton.Click();
@ -278,12 +282,12 @@ namespace CalculatorUITests
Assert.AreEqual("5", page.CalculatorResults.GetCalculatorResultText()); //verifies using 5 key Assert.AreEqual("5", page.CalculatorResults.GetCalculatorResultText()); //verifies using 5 key
CalculatorApp.Window.SendKeys(Keys.Divide); CalculatorApp.Window.SendKeys(Keys.Divide);
Assert.AreEqual("20", page.CalculatorResults.GetCalculatorResultText()); //verifies multiplication 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"); CalculatorApp.Window.SendKeys("6");
Assert.AreEqual("6", page.CalculatorResults.GetCalculatorResultText()); //verifies using 6 key Assert.AreEqual("6", page.CalculatorResults.GetCalculatorResultText()); //verifies using 6 key
CalculatorApp.Window.SendKeys(Keys.Equal); CalculatorApp.Window.SendKeys(Keys.Equal);
Assert.AreEqual("3.333333333333333", page.CalculatorResults.GetCalculatorResultText()); //verifies division 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] [TestMethod]
@ -378,13 +382,18 @@ namespace CalculatorUITests
page.HistoryPanel.ResizeWindowToDisplayHistoryButton(); page.HistoryPanel.ResizeWindowToDisplayHistoryButton();
CalculatorApp.Window.SendKeys(Keys.Control + "h" + Keys.Control); CalculatorApp.Window.SendKeys(Keys.Control + "h" + Keys.Control);
var historyFlyoutItems = page.HistoryPanel.GetAllHistoryFlyoutListViewItems(); 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(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(); page.HistoryPanel.ResizeWindowToDisplayHistoryLabel();
var historyItems = page.HistoryPanel.GetAllHistoryListViewItems(); var historyItems = page.HistoryPanel.GetAllHistoryListViewItems();
Assert.IsTrue(historyItems[0].GetValue().Equals("10", StringComparison.InvariantCultureIgnoreCase)); 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); 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 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"); CalculatorApp.Window.SendKeys("6");
page.StandardOperators.ClearEntryButton.Click(); page.StandardOperators.ClearEntryButton.Click();
Assert.AreEqual("0", page.CalculatorResults.GetCalculatorResultText()); Assert.AreEqual("0", page.CalculatorResults.GetCalculatorResultText());
Assert.AreEqual("3 + 9 Minus (", page.CalculatorResults.GetCalculatorExpressionText()); Assert.AreEqual("12 Minus (", page.CalculatorResults.GetCalculatorExpressionText());
//Verify Clear //Verify Clear
page.StandardOperators.NumberPad.Input(6); page.StandardOperators.NumberPad.Input(6);

View file

@ -415,7 +415,7 @@ TEST_METHOD(MultipleStandardModesHistoryAddItemTest)
{ {
std::vector<StandardCalculatorViewModel ^> viewModels(2); std::vector<StandardCalculatorViewModel ^> 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++) for (int i = 0; i < 2; i++)
{ {
viewModels[i] = ref new StandardCalculatorViewModel(); 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 // 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"" },
TESTITEM standardModeTestItems[2][8] = { { { NumbersAndOperatorsEnum::IsScientificMode, 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<HistoryItemViewModel ^>(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<StandardCalculatorViewModel ^> 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::One, L"1", L"" },
{ NumbersAndOperatorsEnum::Add, L"1", L"1 + " }, { NumbersAndOperatorsEnum::Add, L"1", L"1 + " },
{ NumbersAndOperatorsEnum::Two, L"2", L"1 + " }, { NumbersAndOperatorsEnum::Two, L"2", L"1 + " },
@ -448,7 +507,7 @@ TEST_METHOD(MultipleStandardModesHistoryAddItemTest)
// Run the commands // Run the commands
for (int i = 0; i < 2; i++) 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 =" }; 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<StandardCalculatorViewModel ^> 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<HistoryItemViewModel ^>(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 // Perform calculations on 3 separate instances of Calculator and verify that their Memory List items are maintained separately
TEST_METHOD(MultipleModesMemoryAddItemTest) TEST_METHOD(MultipleModesMemoryAddItemTest)
{ {