Skip to content

Commit 8ce1b10

Browse files
PandaMagnusMichael CurnKeboo
authored
Testbuilder v2 (#114)
* Lots of (admittedly poorly managed) changes to rev to v2. * Biggest change: Now there's a TestBuilder.Build() method that will validate as many dependencies as possible. --------- Co-authored-by: Michael Curn <[email protected]> Co-authored-by: Kevin B <[email protected]>
1 parent ef9787e commit 8ce1b10

40 files changed

+2391
-901
lines changed

IntelliTect.TestTools.TestFramework/ExampleTests/ExampleTests/ExampleTests.csproj

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,28 @@
1-
<Project Sdk="Microsoft.NET.Sdk">
1+
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFramework>netcoreapp3.1</TargetFramework>
5-
4+
<TargetFramework>net6.0</TargetFramework>
5+
<LangVersion>11.0</LangVersion>
6+
<Nullable>enable</Nullable>
7+
<NoWarn>
8+
CA1303;CS1822;CS1822;<!-- Next ones are temporary. -->CS8620;CS8625;CS8600;CS8602;CS8618;CS8603;CS8604;CA1822;CA1062
9+
</NoWarn>
610
<IsPackable>false</IsPackable>
711
</PropertyGroup>
812

913
<ItemGroup>
10-
<PackageReference Include="IntelliTect.TestTools.TestFramework" Version="1.1.1" />
11-
<PackageReference Include="Selenium.WebDriver" Version="4.0.0-alpha01" />
12-
<PackageReference Include="System.Text.Json" Version="4.7.2" />
13-
<PackageReference Include="xunit" Version="2.3.1" />
14-
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.1" />
14+
<PackageReference Include="IntelliTect.Analyzers" Version="0.1.8">
15+
<PrivateAssets>all</PrivateAssets>
16+
</PackageReference>
17+
<PackageReference Include="IntelliTect.TestTools.TestFramework" Version="1.2.1" />
18+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.4.1" />
19+
<PackageReference Include="Selenium.WebDriver" Version="4.8.0" />
20+
<PackageReference Include="System.Text.Json" Version="7.0.1" />
21+
<PackageReference Include="xunit" Version="2.4.2" />
22+
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.5">
23+
<PrivateAssets>all</PrivateAssets>
24+
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
25+
</PackageReference>
1526
<DotNetCliToolReference Include="dotnet-xunit" Version="2.3.1" />
1627
</ItemGroup>
1728

IntelliTect.TestTools.TestFramework/ExampleTests/ExampleTests/Harness/BasePage.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using System.Text.Json.Serialization;
1+
using System;
2+
using System.Text.Json.Serialization;
23
using OpenQA.Selenium;
34

45
namespace ExampleTests.Harness
@@ -10,7 +11,7 @@ public BasePage(IWebDriver driver)
1011
Driver = driver;
1112
}
1213

13-
public string BaseUrl { get; set; } = @"https://intellitect.com/";
14+
public Uri BaseUrl { get; set; } = new Uri("https://intellitect.com/");
1415
[JsonIgnore]
1516
protected IWebDriver Driver { get; set; }
1617
}

IntelliTect.TestTools.TestFramework/ExampleTests/ExampleTests/IntelliTectTests.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public void Test1()
2525
IsBodyAvailable = true
2626
};
2727

28-
TestBuilder builder = new TestBuilder();
28+
TestBuilder builder = new();
2929
builder
3030
.AddLogger<NewLogger>()
3131
.AddDependencyService<IWebDriver>(new WebDriverFactory("Chrome").Driver)
@@ -38,7 +38,7 @@ public void Test1()
3838
[Fact]
3939
public void RegisterMembership()
4040
{
41-
TestBuilder builder = new TestBuilder();
41+
TestBuilder builder = new();
4242
builder
4343
.AddDependencyService<IWebDriver>(new WebDriverFactory("Chrome").Driver)
4444
.AddDependencyService<Harness.IntelliTectWebpage>()
@@ -50,7 +50,7 @@ public void RegisterMembership()
5050
[Fact]
5151
public void LogIn()
5252
{
53-
TestBuilder builder = new TestBuilder();
53+
TestBuilder builder = new();
5454
builder
5555
.AddDependencyService<IWebDriver>(new WebDriverFactory("Chrome").Driver)
5656
.AddDependencyService<Account>(new AccountFactory().Account)

IntelliTect.TestTools.TestFramework/ExampleTests/ExampleTests/NewLogger.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
namespace ExampleTests
77
{
8-
class NewLogger : ILogger
8+
public class NewLogger : ILogger
99
{
1010
public string TestCaseKey { get; set; }
1111
public string CurrentTestBlock { get; set; }

IntelliTect.TestTools.TestFramework/ExampleTests/ExampleTests/WebDriverFactory.cs

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,9 @@ public WebDriverFactory(string browserType)
1717

1818
private IWebDriver GetWebDriver(IServiceProvider service)
1919
{
20-
if (_BrowserType == "Chrome")
21-
_Driver = new ChromeDriver(Directory.GetCurrentDirectory());
22-
else
23-
_Driver = new ChromeDriver(Directory.GetCurrentDirectory());
24-
return _Driver;
20+
return new ChromeDriver(Directory.GetCurrentDirectory());
2521
}
2622

27-
private IWebDriver _Driver;
2823
private string _BrowserType;
2924
}
3025
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
namespace IntelliTect.TestTools.TestFramework.Tests
2+
{
3+
public static class ErrorMessages
4+
{
5+
public const string ExecuteError = "there must be one and only one execute method";
6+
public const string MissingInputError = "unable to satisfy test block input";
7+
public const string MismatchedExecuteOverrideError = "unable to find corresponding execute parameter";
8+
public const string TooManyExecuteOverridesError = "too many execute overrides were provided";
9+
public const string AlreadyAddedError = "multiple execute argument overrides of the same type are not allowed";
10+
}
11+
}

IntelliTect.TestTools.TestFramework/IntelliTect.TestTools.TestFramework.Tests/ExampleDataThing.cs

Lines changed: 0 additions & 12 deletions
This file was deleted.

IntelliTect.TestTools.TestFramework/IntelliTect.TestTools.TestFramework.Tests/ExampleDataThingFactory.cs

Lines changed: 0 additions & 19 deletions
This file was deleted.
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
using System;
2+
3+
namespace IntelliTect.TestTools.TestFramework.Tests
4+
{
5+
public class ThrowingLogger : ITestCaseLogger
6+
{
7+
public ThrowingLogger(TestCase tc)
8+
{
9+
TestCase = tc;
10+
}
11+
12+
public string? TestCaseKey { get; set; }
13+
public string? CurrentTestBlock { get; set; }
14+
15+
public TestCase TestCase { get; }
16+
17+
public void Debug(string message)
18+
{
19+
throw new NotImplementedException();
20+
}
21+
22+
public void Critical(string message)
23+
{
24+
throw new NotImplementedException();
25+
}
26+
27+
public void Info(string message)
28+
{
29+
throw new NotImplementedException();
30+
}
31+
32+
public void TestBlockInput(object input)
33+
{
34+
throw new NotImplementedException();
35+
}
36+
37+
public void TestBlockOutput(object output)
38+
{
39+
throw new NotImplementedException();
40+
}
41+
}
42+
}

IntelliTect.TestTools.TestFramework/IntelliTect.TestTools.TestFramework.Tests/IntelliTect.TestTools.TestFramework.Tests.csproj

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,26 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFramework>netcoreapp3.1</TargetFramework>
5-
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
6-
<WarningLevel>4</WarningLevel>
7-
<NoWarn>1701;1702;CA1822;CA1303</NoWarn>
4+
<TargetFramework>net6.0</TargetFramework>
5+
<LangVersion>11.0</LangVersion>
6+
<Nullable>enable</Nullable>
7+
<NoWarn>
8+
CA1303;
9+
CA1822;
10+
</NoWarn>
811
<IsPackable>false</IsPackable>
912
</PropertyGroup>
1013

1114
<ItemGroup>
12-
<PackageReference Include="xunit" Version="2.3.1" />
13-
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.1" />
15+
<PackageReference Include="IntelliTect.Analyzers" Version="0.1.8">
16+
<PrivateAssets>all</PrivateAssets>
17+
</PackageReference>
18+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.4.1" />
19+
<PackageReference Include="xunit" Version="2.4.2" />
20+
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.5">
21+
<PrivateAssets>all</PrivateAssets>
22+
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
23+
</PackageReference>
1424
<DotNetCliToolReference Include="dotnet-xunit" Version="2.3.1" />
1525
</ItemGroup>
1626

0 commit comments

Comments
 (0)