Skip to content

Commit

Permalink
Merge pull request #175 from OleksiiKhorunzhak/examples
Browse files Browse the repository at this point in the history
Add DifferentExamples
  • Loading branch information
vldemyan authored Aug 26, 2024
2 parents a8e127e + 58352f6 commit c7d4a80
Show file tree
Hide file tree
Showing 22 changed files with 1,999 additions and 0 deletions.
49 changes: 49 additions & 0 deletions DifferentExamples/AssertExamples.cs
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));
}
}
}
32 changes: 32 additions & 0 deletions DifferentExamples/AsyncHomework.cs
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."
}

}
31 changes: 31 additions & 0 deletions DifferentExamples/AsyncHomeworkDone.cs
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."));
}

}
91 changes: 91 additions & 0 deletions DifferentExamples/AsyncTests.cs
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.");
}

}
24 changes: 24 additions & 0 deletions DifferentExamples/DifferentExamples.csproj
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>
72 changes: 72 additions & 0 deletions DifferentExamples/EnumHomework.cs
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 },
};
}
*/
76 changes: 76 additions & 0 deletions DifferentExamples/EnumHomeworkDone.cs
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 },
};
}
Loading

0 comments on commit c7d4a80

Please sign in to comment.