-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #175 from OleksiiKhorunzhak/examples
Add DifferentExamples
- Loading branch information
Showing
22 changed files
with
1,999 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
| ||
namespace DifferentExamples | ||
{ | ||
internal class AssertExamples | ||
{ | ||
dynamic Page; | ||
dynamic MenuPage; | ||
dynamic SelectYourPizzaPage; | ||
dynamic OrderPage; | ||
|
||
[Test] | ||
public async Task GuessWhatDoIDo_1() | ||
{ | ||
await Page.GoToMascarponePizzaPage(); | ||
await Page.VerifyMascarponePizzaPageIsOk(); | ||
await Page.ClickExpand(); | ||
await Page.VerifyExpandIsVisible(); | ||
await Page.ClickAdd(2); | ||
await Page.ClickAdd(5); | ||
await Page.ClickAdd(6); | ||
await Page.ClickOnConfirm(); | ||
await Page.VerifyIsConfirmed(); | ||
await Page.ClickOnFinish(); | ||
await Page.VerifyOrderPageIsCorrect(); | ||
await Page.VerifyOrderCode(203); | ||
} | ||
|
||
[Test] | ||
public async Task GuessWhatDoIDo_2() | ||
{ | ||
//Arrange | ||
await MenuPage.SelectPizza("Mascarpone"); | ||
await SelectYourPizzaPage.ExpandIngredients(); | ||
|
||
//Act | ||
await SelectYourPizzaPage.AddIngredient("cheese"); | ||
await SelectYourPizzaPage.AddIngredient("pepper"); | ||
await SelectYourPizzaPage.AddIngredient("beacon"); | ||
await SelectYourPizzaPage.ConfirmIngredients(); | ||
await OrderPage.ConfirmOrder(); | ||
var ingredientsNumber = await OrderPage.GetIngredientsNumber(); | ||
var orderTotal = await OrderPage.GetTotal(); | ||
|
||
//Assert | ||
Assert.That(ingredientsNumber, Is.EqualTo(3)); | ||
Assert.That(orderTotal, Is.EqualTo(15.87)); | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
namespace DifferentExamples; | ||
|
||
public class AsyncHomework | ||
{ | ||
public async Task<string> GetStringAsync() | ||
{ | ||
await Task.Delay(500); | ||
return "Hello, World!"; | ||
} | ||
|
||
public async Task<int> GetNumberWithExceptionAsync() | ||
{ | ||
await Task.Delay(1000); | ||
throw new InvalidOperationException("An error occurred while fetching the number."); | ||
} | ||
|
||
[Test] | ||
public async Task TestGetStringAsync() | ||
{ | ||
// TODO: Uncomment and implement test so it pass | ||
//var result = | ||
//Assert.That(result, Is.EqualTo("Hello, World!")); | ||
} | ||
|
||
[Test] | ||
public void TestGetNumberWithExceptionAsync() | ||
{ | ||
// TODO: Verify that GetNumberWithExceptionAsync() throws InvalidOperationException | ||
// and that exception message is "An error occurred while fetching the number." | ||
} | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
namespace DifferentExamplesDone; | ||
|
||
public class AsyncHomework | ||
{ | ||
public async Task<string> GetStringAsync() | ||
{ | ||
await Task.Delay(500); | ||
return "Hello, World!"; | ||
} | ||
|
||
public async Task<int> GetNumberWithExceptionAsync() | ||
{ | ||
await Task.Delay(1000); | ||
throw new InvalidOperationException("An error occurred while fetching the number."); | ||
} | ||
|
||
[Test] | ||
public async Task TestGetStringAsync() | ||
{ | ||
var result = await GetStringAsync(); | ||
Assert.That(result, Is.EqualTo("Hello, World!")); | ||
} | ||
|
||
[Test] | ||
public void TestGetNumberWithExceptionAsync() | ||
{ | ||
var ex = Assert.ThrowsAsync<InvalidOperationException>(async () => await GetNumberWithExceptionAsync()); | ||
Assert.That(ex.Message, Is.EqualTo("An error occurred while fetching the number.")); | ||
} | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,91 @@ | ||
namespace DifferentExamples; | ||
|
||
public class AsyncTests | ||
{ | ||
[SetUp] | ||
public void Setup() | ||
{ | ||
} | ||
|
||
|
||
[Test] | ||
public async Task AsyncEach() | ||
{ | ||
var start = DateTime.Now; | ||
Console.WriteLine("Start."); | ||
|
||
await BoilWaterAsync(); | ||
await FryEggsAsync(); | ||
await ToastBreadAsync(); | ||
|
||
Console.WriteLine("Finish. Elapsed: " + (DateTime.Now - start)); | ||
} | ||
|
||
[Test] | ||
public async Task AsyncTestWithAwait() | ||
{ | ||
var start = DateTime.Now; | ||
Console.WriteLine("Start."); | ||
|
||
await MakeBreakfastAsync(); | ||
|
||
Console.WriteLine("Finish. Elapsed: " + (DateTime.Now - start)); | ||
|
||
} | ||
|
||
[Test] | ||
public async Task AsyncEachNoAwait() | ||
{ | ||
var start = DateTime.Now; | ||
Console.WriteLine("Start."); | ||
|
||
BoilWaterAsync(); | ||
FryEggsAsync(); | ||
ToastBreadAsync(); | ||
|
||
Console.WriteLine("Finish. Elapsed: " + (DateTime.Now - start)); | ||
} | ||
|
||
[Test] | ||
public void AsyncTestWithoutAwait() | ||
{ | ||
var start = DateTime.Now; | ||
Console.WriteLine("Start."); | ||
|
||
MakeBreakfastAsync(); | ||
Thread.Sleep(1500); | ||
|
||
Console.WriteLine("Finish. Elapsed: " + (DateTime.Now - start)); | ||
} | ||
|
||
private static async Task MakeBreakfastAsync() | ||
{ | ||
Task waterTask = BoilWaterAsync(); | ||
Task eggsTask = FryEggsAsync(); | ||
Task toastTask = ToastBreadAsync(); | ||
|
||
await Task.WhenAll(waterTask, eggsTask, toastTask); | ||
} | ||
|
||
private static async Task BoilWaterAsync() | ||
{ | ||
Console.WriteLine("Boiling water..."); | ||
await Task.Delay(3000); // Simulate time taken to boil water asynchronously | ||
Console.WriteLine("Water boiled."); | ||
} | ||
|
||
private static async Task FryEggsAsync() | ||
{ | ||
Console.WriteLine("Frying eggs..."); | ||
await Task.Delay(2000); // Simulate time taken to fry eggs asynchronously | ||
Console.WriteLine("Eggs fried."); | ||
} | ||
|
||
private static async Task ToastBreadAsync() | ||
{ | ||
Console.WriteLine("Toasting bread..."); | ||
await Task.Delay(1000); // Simulate time taken to toast bread asynchronously | ||
Console.WriteLine("Bread toasted."); | ||
} | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
<Project Sdk="Microsoft.NET.Sdk"> | ||
|
||
<PropertyGroup> | ||
<TargetFramework>net8.0</TargetFramework> | ||
<ImplicitUsings>enable</ImplicitUsings> | ||
<Nullable>enable</Nullable> | ||
|
||
<IsPackable>false</IsPackable> | ||
<IsTestProject>true</IsTestProject> | ||
</PropertyGroup> | ||
|
||
<ItemGroup> | ||
<PackageReference Include="coverlet.collector" Version="6.0.0" /> | ||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" /> | ||
<PackageReference Include="NUnit" Version="3.14.0" /> | ||
<PackageReference Include="NUnit.Analyzers" Version="3.9.0" /> | ||
<PackageReference Include="NUnit3TestAdapter" Version="4.5.0" /> | ||
</ItemGroup> | ||
|
||
<ItemGroup> | ||
<Using Include="NUnit.Framework" /> | ||
</ItemGroup> | ||
|
||
</Project> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,72 @@ | ||
namespace DifferentExamples; | ||
|
||
// TODO: modify enum so CheckCustomIntNumbersForTestDataAgeEnum pass | ||
public enum TestDataAge | ||
{ | ||
Child, | ||
Teenager, | ||
Adult | ||
} | ||
|
||
/* TODO: uncomment and implement tests so all Assert pass. Use such LINQ as Any(), Count(), Contains() | ||
[TestFixture] | ||
public class EnumHomework | ||
{ | ||
[Test] | ||
public void CheckCustomIntNumbersForTestDataAgeEnum() | ||
{ | ||
Assert.That((int)TestDataAge.Child, Is.EqualTo(7)); | ||
Assert.That((int)TestDataAge.Teenager, Is.EqualTo(14)); | ||
Assert.That((int)TestDataAge.Adult, Is.EqualTo(30)); | ||
} | ||
[Test] | ||
public void SomeIntCorrespondsToSomeTestDataAgeValue() | ||
{ | ||
var listOfInt = new List<int>() { 5, 14, 15 }; | ||
var isAnyIntCorrespondsToTestDataAge = | ||
Assert.That(isAnyIntCorrespondsToTestDataAge, Is.True); | ||
} | ||
[Test] | ||
public void NumberOfIntCorrespondsToSomeTestDataAgeValue() | ||
{ | ||
var listOfInt = new List<int>() { 5, 14, 15, 30 }; | ||
var numberOfIntCorrespondToTestDataAge = | ||
Assert.That(numberOfIntCorrespondToTestDataAge, Is.EqualTo(2)); | ||
} | ||
[TestCaseSource(nameof(StringlEmentsArePresentInEnumCases))] | ||
public void StringlEmentsArePresentInEnum(string[] list, int expectedNumberPresent, int expectedNumberExtra, bool areAllPresentExpected, bool areExtraElementsExpected) | ||
{ | ||
var listOfString = list.ToList(); | ||
var numberOfStringsWhichPresentInEnum = | ||
var numberOfStringsWhichAreNotPresentInEnum = | ||
var areAllPresent = | ||
var areExtraElements = | ||
Assert.That(numberOfStringsWhichPresentInEnum, Is.EqualTo(expectedNumberPresent)); | ||
Assert.That(numberOfStringsWhichAreNotPresentInEnum, Is.EqualTo(expectedNumberExtra)); | ||
Assert.That(areAllPresent, Is.EqualTo(areAllPresentExpected)); | ||
Assert.That(areExtraElements, Is.EqualTo(areExtraElementsExpected)); | ||
} | ||
public static object[] StringlEmentsArePresentInEnumCases = | ||
{ | ||
new object[] { new string[] { "Child", "Baby", "Teenager", "Eldery", "Adult" }, 3, 2, false, true }, | ||
new object[] { new string[] { "Child", "Teenager", "Adult" }, 3, 0, true, false }, | ||
new object[] { new string[] { "Baby", "Teenager", "Eldery" }, 1, 2, false, true }, | ||
new object[] { new string[] { "Adult", "Child" }, 2, 0, true, false }, | ||
new object[] { new string[] { "Eldery", "Baby" }, 0, 2, false, true }, | ||
new object[] { new string[] { }, 0, 0, true, false }, | ||
}; | ||
} | ||
*/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,76 @@ | ||
namespace DifferentExamplesDone; | ||
|
||
// TODO: modify enum so CheckCustomIntNumbersForTestDataAgeEnum pass | ||
public enum TestDataAge | ||
{ | ||
Child, | ||
Teenager, | ||
Adult | ||
} | ||
|
||
[TestFixture] | ||
public class EnumHomework | ||
{ | ||
|
||
[Test] | ||
public void CheckCustomIntNumbersForTestDataAgeEnum() | ||
{ | ||
|
||
Assert.That((int)TestDataAge.Child, Is.EqualTo(7)); | ||
Assert.That((int)TestDataAge.Teenager, Is.EqualTo(14)); | ||
Assert.That((int)TestDataAge.Adult, Is.EqualTo(30)); | ||
} | ||
|
||
[Test] | ||
public void SomeIntCorrespondsToSomeTestDataAgeValue() | ||
{ | ||
var listOfInt = new List<int>() { 5, 14, 15 }; | ||
var itemsList = Enum.GetValues(typeof(TestDataAge)).OfType<TestDataAge>().ToList(); | ||
|
||
var isAnyIntCorrespondsToTestDataAge = itemsList.Any(e => listOfInt.Contains((int)e)); | ||
|
||
Assert.That(isAnyIntCorrespondsToTestDataAge, Is.True); | ||
} | ||
|
||
[Test] | ||
public void NumberOfIntCorrespondsToSomeTestDataAgeValue() | ||
{ | ||
var listOfInt = new List<int>() { 5, 14, 15, 30 }; | ||
var itemsList = Enum.GetValues(typeof(TestDataAge)).OfType<TestDataAge>().ToList(); | ||
|
||
var numberOfIntCorrespondToTestDataAge = itemsList.Count(e => listOfInt.Contains((int)e)); | ||
|
||
Assert.That(numberOfIntCorrespondToTestDataAge, Is.EqualTo(2)); | ||
} | ||
|
||
|
||
[TestCaseSource(nameof(StringlEmentsArePresentInEnumCases))] | ||
public void StringlEmentsArePresentInEnum(string[] list, int expectedNumberPresent, int expectedNumberExtra, bool areAllPresentExpected, bool areExtraElementsExpected) | ||
{ | ||
var listOfString = list.ToList(); | ||
|
||
var enumValuesAsString = Enum.GetValues(typeof(TestDataAge)).OfType<TestDataAge>().ToList().Select(i => i.ToString()); | ||
|
||
|
||
var numberOfStringsWhichPresentInEnum = listOfString.Count(e => enumValuesAsString.Contains(e)); | ||
var numberOfStringsWhichAreNotPresentInEnum = listOfString.Count(e => !enumValuesAsString.Contains(e)); | ||
var areAllPresent = listOfString.All(e => enumValuesAsString.Contains(e)); | ||
var areExtraElements = listOfString.Any(e => !enumValuesAsString.Contains(e)); | ||
|
||
Assert.That(numberOfStringsWhichPresentInEnum, Is.EqualTo(expectedNumberPresent)); | ||
Assert.That(numberOfStringsWhichAreNotPresentInEnum, Is.EqualTo(expectedNumberExtra)); | ||
Assert.That(areAllPresent, Is.EqualTo(areAllPresentExpected)); | ||
Assert.That(areExtraElements, Is.EqualTo(areExtraElementsExpected)); | ||
|
||
} | ||
|
||
public static object[] StringlEmentsArePresentInEnumCases = | ||
{ | ||
new object[] { new string[] { "Child", "Baby", "Teenager", "Eldery", "Adult" }, 3, 2, false, true }, | ||
new object[] { new string[] { "Child", "Teenager", "Adult" }, 3, 0, true, false }, | ||
new object[] { new string[] { "Baby", "Teenager", "Eldery" }, 1, 2, false, true }, | ||
new object[] { new string[] { "Adult", "Child" }, 2, 0, true, false }, | ||
new object[] { new string[] { "Eldery", "Baby" }, 0, 2, false, true }, | ||
new object[] { new string[] { }, 0, 0, true, false }, | ||
}; | ||
} |
Oops, something went wrong.