Skip to content
This repository was archived by the owner on Oct 21, 2022. It is now read-only.

Commit d0ccf16

Browse files
committed
Add unitTest project
1 parent 4ea2275 commit d0ccf16

6 files changed

Lines changed: 255 additions & 2 deletions

File tree

ModLoader.sln

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,22 @@ VisualStudioVersion = 16.0.29709.97
55
MinimumVisualStudioVersion = 10.0.40219.1
66
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ModLoader", "ModLoader\ModLoader.csproj", "{A947DC7D-08BE-4D3A-8D81-D94DD376ECB8}"
77
EndProject
8+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ModLoaderTesting", "ModLoaderTesting\ModLoaderTesting.csproj", "{A5B6E9D9-31AA-48C4-976D-7F8D45ADB982}"
9+
EndProject
810
Global
911
GlobalSection(SolutionConfigurationPlatforms) = preSolution
12+
Debug|Any CPU = Debug|Any CPU
1013
Release|Any CPU = Release|Any CPU
1114
EndGlobalSection
1215
GlobalSection(ProjectConfigurationPlatforms) = postSolution
16+
{A947DC7D-08BE-4D3A-8D81-D94DD376ECB8}.Debug|Any CPU.ActiveCfg = Release|Any CPU
17+
{A947DC7D-08BE-4D3A-8D81-D94DD376ECB8}.Debug|Any CPU.Build.0 = Release|Any CPU
1318
{A947DC7D-08BE-4D3A-8D81-D94DD376ECB8}.Release|Any CPU.ActiveCfg = Release|Any CPU
1419
{A947DC7D-08BE-4D3A-8D81-D94DD376ECB8}.Release|Any CPU.Build.0 = Release|Any CPU
20+
{A5B6E9D9-31AA-48C4-976D-7F8D45ADB982}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
21+
{A5B6E9D9-31AA-48C4-976D-7F8D45ADB982}.Debug|Any CPU.Build.0 = Debug|Any CPU
22+
{A5B6E9D9-31AA-48C4-976D-7F8D45ADB982}.Release|Any CPU.ActiveCfg = Release|Any CPU
23+
{A5B6E9D9-31AA-48C4-976D-7F8D45ADB982}.Release|Any CPU.Build.0 = Release|Any CPU
1524
EndGlobalSection
1625
GlobalSection(SolutionProperties) = preSolution
1726
HideSolutionNode = FALSE

ModLoader/ModLoader.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -114,9 +114,9 @@
114114
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
115115

116116
<!-- After build copy dll file into managed folder and start the game -->
117-
<Target Name="AfterBuild">
117+
<Target Name="AfterBuild" Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
118118
<Copy SourceFiles="bin\Release\ModLoader.dll" DestinationFolder="$(ManagedFolder)" ContinueOnError="true" />
119119
<Exec Command="start steam://rungameid/1718870"/>
120120
</Target>
121-
121+
122122
</Project>
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3+
<Import Project="..\packages\MSTest.TestAdapter.1.3.2\build\net45\MSTest.TestAdapter.props" Condition="Exists('..\packages\MSTest.TestAdapter.1.3.2\build\net45\MSTest.TestAdapter.props')" />
4+
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
5+
<PropertyGroup>
6+
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
7+
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
8+
<ProjectGuid>{A5B6E9D9-31AA-48C4-976D-7F8D45ADB982}</ProjectGuid>
9+
<OutputType>Library</OutputType>
10+
<AppDesignerFolder>Properties</AppDesignerFolder>
11+
<RootNamespace>ModLoaderTesting</RootNamespace>
12+
<AssemblyName>ModLoaderTesting</AssemblyName>
13+
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
14+
<FileAlignment>512</FileAlignment>
15+
<ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
16+
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">15.0</VisualStudioVersion>
17+
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
18+
<ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\$(VisualStudioVersion)\UITestExtensionPackages</ReferencePath>
19+
<IsCodedUITest>False</IsCodedUITest>
20+
<TestProjectType>UnitTest</TestProjectType>
21+
<NuGetPackageImportStamp>
22+
</NuGetPackageImportStamp>
23+
</PropertyGroup>
24+
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
25+
<DebugSymbols>true</DebugSymbols>
26+
<DebugType>full</DebugType>
27+
<Optimize>false</Optimize>
28+
<OutputPath>bin\Debug\</OutputPath>
29+
<DefineConstants>DEBUG;TRACE</DefineConstants>
30+
<ErrorReport>prompt</ErrorReport>
31+
<WarningLevel>4</WarningLevel>
32+
</PropertyGroup>
33+
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
34+
<DebugType>pdbonly</DebugType>
35+
<Optimize>true</Optimize>
36+
<OutputPath>bin\Release\</OutputPath>
37+
<DefineConstants>TRACE</DefineConstants>
38+
<ErrorReport>prompt</ErrorReport>
39+
<WarningLevel>4</WarningLevel>
40+
</PropertyGroup>
41+
<ItemGroup>
42+
<Reference Include="Microsoft.VisualStudio.TestPlatform.TestFramework, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
43+
<HintPath>..\packages\MSTest.TestFramework.1.3.2\lib\net45\Microsoft.VisualStudio.TestPlatform.TestFramework.dll</HintPath>
44+
</Reference>
45+
<Reference Include="Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
46+
<HintPath>..\packages\MSTest.TestFramework.1.3.2\lib\net45\Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll</HintPath>
47+
</Reference>
48+
<Reference Include="System" />
49+
<Reference Include="System.Core" />
50+
<Reference Include="UnityEngine.CoreModule">
51+
<HintPath>..\Dependencies\UnityEngine.CoreModule.dll</HintPath>
52+
</Reference>
53+
</ItemGroup>
54+
<ItemGroup>
55+
<Compile Include="TestLoader.cs" />
56+
<Compile Include="Properties\AssemblyInfo.cs" />
57+
</ItemGroup>
58+
<ItemGroup>
59+
<None Include="packages.config" />
60+
</ItemGroup>
61+
<ItemGroup>
62+
<ProjectReference Include="..\ModLoader\ModLoader.csproj">
63+
<Project>{a947dc7d-08be-4d3a-8d81-d94dd376ecb8}</Project>
64+
<Name>ModLoader</Name>
65+
</ProjectReference>
66+
</ItemGroup>
67+
<Import Project="$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets" Condition="Exists('$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets')" />
68+
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
69+
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
70+
<PropertyGroup>
71+
<ErrorText>Este proyecto hace referencia a los paquetes NuGet que faltan en este equipo. Use la restauración de paquetes NuGet para descargarlos. Para obtener más información, consulte http://go.microsoft.com/fwlink/?LinkID=322105. El archivo que falta es {0}.</ErrorText>
72+
</PropertyGroup>
73+
<Error Condition="!Exists('..\packages\MSTest.TestAdapter.1.3.2\build\net45\MSTest.TestAdapter.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\MSTest.TestAdapter.1.3.2\build\net45\MSTest.TestAdapter.props'))" />
74+
<Error Condition="!Exists('..\packages\MSTest.TestAdapter.1.3.2\build\net45\MSTest.TestAdapter.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\MSTest.TestAdapter.1.3.2\build\net45\MSTest.TestAdapter.targets'))" />
75+
</Target>
76+
<Import Project="..\packages\MSTest.TestAdapter.1.3.2\build\net45\MSTest.TestAdapter.targets" Condition="Exists('..\packages\MSTest.TestAdapter.1.3.2\build\net45\MSTest.TestAdapter.targets')" />
77+
</Project>
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
using System.Reflection;
2+
using System.Runtime.CompilerServices;
3+
using System.Runtime.InteropServices;
4+
5+
[assembly: AssemblyTitle("ModLoaderTesting")]
6+
[assembly: AssemblyDescription("")]
7+
[assembly: AssemblyConfiguration("")]
8+
[assembly: AssemblyCompany("")]
9+
[assembly: AssemblyProduct("ModLoaderTesting")]
10+
[assembly: AssemblyCopyright("Copyright © 2022")]
11+
[assembly: AssemblyTrademark("")]
12+
[assembly: AssemblyCulture("")]
13+
14+
[assembly: ComVisible(false)]
15+
16+
[assembly: Guid("a5b6e9d9-31aa-48c4-976d-7f8d45adb982")]
17+
18+
// [assembly: AssemblyVersion("1.0.*")]
19+
[assembly: AssemblyVersion("1.0.0.0")]
20+
[assembly: AssemblyFileVersion("1.0.0.0")]

ModLoaderTesting/TestLoader.cs

Lines changed: 142 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,142 @@
1+
using System;
2+
using Microsoft.VisualStudio.TestTools.UnitTesting;
3+
using ModLoader;
4+
5+
namespace ModLoaderTesting
6+
{
7+
[TestClass]
8+
public class TestLoader
9+
{
10+
private PrivateObject _loader;
11+
12+
[TestInitialize]
13+
public void Init()
14+
{
15+
Loader loader = new Loader();
16+
this._loader = new PrivateObject(loader);
17+
}
18+
19+
[TestMethod]
20+
public void DifferentMajorVersion_verifyVersion_ReturnFalse()
21+
{
22+
// Arrange
23+
string currentVersion = "v2.1.1";
24+
string targetVersion = "v1.x.x";
25+
object[] toTest = new object[] { targetVersion, currentVersion, true };
26+
27+
// Act
28+
bool result = (bool)this._loader.Invoke("verifyVersion", toTest);
29+
30+
// Assert
31+
Assert.IsFalse(result);
32+
}
33+
34+
[TestMethod]
35+
public void TargetCompatibleWithAllMinorVersions_verifyVersion_ReturnTrue()
36+
{
37+
// Arrange
38+
string currentVersion = "v1.9.1";
39+
string targetVersion = "v1.x.x";
40+
object[] toTest = new object[] { targetVersion, currentVersion, true };
41+
42+
// Act
43+
bool result = (bool)this._loader.Invoke("verifyVersion", toTest);
44+
45+
// Assert
46+
Assert.IsTrue(result);
47+
}
48+
49+
[TestMethod]
50+
public void TargetHasX_verifyVersion_ReturnTrue()
51+
{
52+
// Arrange
53+
string currentVersion = "v1.1.1";
54+
string targetVersion = "v1.1.x";
55+
object[] toTest = new object[] { targetVersion, currentVersion, true };
56+
57+
// Act
58+
bool result = (bool)this._loader.Invoke("verifyVersion", toTest);
59+
60+
// Assert
61+
Assert.IsTrue(result);
62+
}
63+
64+
[TestMethod]
65+
public void TargetLessThatCurrent_verifyVersion_ReturnTrue()
66+
{
67+
// Arrange
68+
string currentVersion = "v1.3.0";
69+
string targetVersion = "v1.2.2";
70+
object[] toTest = new object[] { targetVersion, currentVersion, true };
71+
72+
// Act
73+
bool result = (bool) this._loader.Invoke("verifyVersion", toTest);
74+
75+
// Assert
76+
Assert.IsTrue(result);
77+
}
78+
79+
80+
[TestMethod]
81+
public void TargetGreaterThatCurrent_verifyVersion_ReturnFalse()
82+
{
83+
// Arrange
84+
string currentVersion = "v1.1.1";
85+
string targetVersion = "v1.1.2";
86+
object[] toTest = new object[] { targetVersion, currentVersion, true };
87+
88+
// Act
89+
bool result = (bool)this._loader.Invoke("verifyVersion", toTest);
90+
91+
// Assert
92+
Assert.IsFalse(result);
93+
}
94+
95+
[TestMethod]
96+
public void TargetEqualCurrent_verifyVersion_ReturnTrue()
97+
{
98+
// Arrange
99+
string currentVersion = "v1.1.1";
100+
string targetVersion = "v1.1.1";
101+
object[] toTest = new object[] { targetVersion, currentVersion, true };
102+
103+
// Act
104+
bool result = (bool)this._loader.Invoke("verifyVersion", toTest);
105+
106+
// Assert
107+
Assert.IsTrue(result);
108+
}
109+
110+
[TestMethod]
111+
public void CurrentInvalidFormat_verifyVersion_ReturnFalse()
112+
{
113+
// Arrange
114+
string currentVersion = "v1.1.1 beta";
115+
string targetVersion = "v1.1.1";
116+
object[] toTest = new object[] { targetVersion, currentVersion, true };
117+
118+
// Act
119+
bool result = (bool)this._loader.Invoke("verifyVersion", toTest);
120+
121+
// Assert
122+
Assert.IsFalse(result);
123+
}
124+
125+
[TestMethod]
126+
public void TargetInvalidFormat_verifyVersion_ReturnFalse()
127+
{
128+
// Arrange
129+
string currentVersion = "v1.1.1";
130+
string targetVersion = "v1.1.1 beta";
131+
object[] toTest = new object[] { targetVersion, currentVersion, true };
132+
133+
// Act
134+
bool result = (bool)this._loader.Invoke("verifyVersion", toTest);
135+
136+
// Assert
137+
Assert.IsFalse(result);
138+
}
139+
140+
141+
}
142+
}

ModLoaderTesting/packages.config

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<packages>
3+
<package id="MSTest.TestAdapter" version="1.3.2" targetFramework="net461" />
4+
<package id="MSTest.TestFramework" version="1.3.2" targetFramework="net461" />
5+
</packages>

0 commit comments

Comments
 (0)