Skip to content
This repository was archived by the owner on Feb 6, 2024. It is now read-only.

Commit 3354de9

Browse files
committed
Added Unit Tests and Unit Test Coverage
1 parent 3d80df8 commit 3354de9

14 files changed

Lines changed: 527 additions & 126 deletions

.nuget/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="OpenCover" version="4.6.519" />
4+
<package id="ReportGenerator" version="2.4.3.0" />
5+
</packages>
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
C:\SCM\RemoteBrowserMobProxy\packages\OpenCover.4.6.519\tools>OpenCover.Console.exe -target:"C:\Program Files (x86)\NUnit.org\nunit-console\nunit3-console.exe" -targetargs:"C:\SCM\RemoteBrowserMobProxy\RemoteBrowserMobProxy.Tests\bin\Debug\RemoteBrowserMobProxy.Tests.dll" -register:user -filter:"+[RemoteBrowserMobProxy]* -[RemoteBrowserMobProxy.Test]*"
2+
3+
C:\SCM\RemoteBrowserMobProxy\packages\ReportGenerator.2.4.3.0\tools>ReportGenerator.exe -reports:"C:\SCM\RemoteBrowserMobProxy\packages\OpenCover.4.6.519\tools\results.xml" -targetdir:C:\test\report

RemoteBrowserMobProxy.Tests/RemoteBrowserMobProxy.Tests.csproj

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,6 @@
3030
<WarningLevel>4</WarningLevel>
3131
</PropertyGroup>
3232
<ItemGroup>
33-
<Reference Include="Flurl, Version=1.0.10.0, Culture=neutral, processorArchitecture=MSIL">
34-
<HintPath>..\packages\Flurl.1.0.10\lib\portable-net40+sl50+win+wpa81+wp80+MonoAndroid10+MonoTouch10\Flurl.dll</HintPath>
35-
<Private>True</Private>
36-
</Reference>
37-
<Reference Include="Flurl.Http, Version=0.7.0.0, Culture=neutral, processorArchitecture=MSIL">
38-
<HintPath>..\packages\Flurl.Http.0.7.0\lib\net45\Flurl.Http.dll</HintPath>
39-
<Private>True</Private>
40-
</Reference>
4133
<Reference Include="HarSharp, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
4234
<HintPath>..\packages\HarSharp.1.0.0\lib\net45\HarSharp.dll</HintPath>
4335
<Private>True</Private>
@@ -46,6 +38,9 @@
4638
<HintPath>..\packages\HelperSharp.0.0.4.1\lib\net35\HelperSharp.dll</HintPath>
4739
<Private>True</Private>
4840
</Reference>
41+
<Reference Include="Moq">
42+
<HintPath>..\packages\Moq.4.2.1510.2205\lib\net40\Moq.dll</HintPath>
43+
</Reference>
4944
<Reference Include="Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
5045
<HintPath>..\packages\Newtonsoft.Json.6.0.5\lib\net45\Newtonsoft.Json.dll</HintPath>
5146
<Private>True</Private>
@@ -54,6 +49,9 @@
5449
<HintPath>..\packages\NUnit.3.0.1\lib\net45\nunit.framework.dll</HintPath>
5550
<Private>True</Private>
5651
</Reference>
52+
<Reference Include="RestSharp">
53+
<HintPath>..\packages\RestSharp.105.2.3\lib\net45\RestSharp.dll</HintPath>
54+
</Reference>
5755
<Reference Include="System" />
5856
<Reference Include="System.Core" />
5957
<Reference Include="System.Xml.Linq" />
@@ -64,11 +62,14 @@
6462
</ItemGroup>
6563
<ItemGroup>
6664
<Compile Include="Properties\AssemblyInfo.cs" />
67-
<Compile Include="TestBase.cs" />
68-
<Compile Include="TestHarFeatures.cs" />
65+
<Compile Include="RemoteBrowserMobProxyClientTests.cs" />
66+
<Compile Include="UnitTests\HarContentTests.cs" />
67+
<Compile Include="UnitTests\WhitelistTests.cs" />
6968
</ItemGroup>
7069
<ItemGroup>
71-
<None Include="packages.config" />
70+
<None Include="packages.config">
71+
<SubType>Designer</SubType>
72+
</None>
7273
</ItemGroup>
7374
<ItemGroup>
7475
<ProjectReference Include="..\RemoteBrowserMobProxy\RemoteBrowserMobProxy.csproj">
Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,146 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq;
4+
using System.Net;
5+
using Moq;
6+
using NUnit.Framework;
7+
using RemoteBrowserMobProxy.Data.Response;
8+
using RestSharp;
9+
10+
11+
namespace RemoteBrowserMobProxy.Tests
12+
{
13+
[TestFixture]
14+
public class RemoteBrowserMobProxyClientTests
15+
{
16+
private Mock<IRestClient> _restClientMoq;
17+
private RemoteBrowserMobProxyClient _remoteBrowserMobProxyClient;
18+
private readonly Uri _clientUri=new Uri("http://localhost/");
19+
20+
[SetUp]
21+
public void Setup()
22+
{
23+
24+
_restClientMoq = new Mock<IRestClient>();
25+
_restClientMoq.SetupGet(x => x.BaseUrl).Returns(_clientUri);
26+
27+
_remoteBrowserMobProxyClient = new RemoteBrowserMobProxyClient(_restClientMoq.Object);
28+
}
29+
30+
[Test]
31+
public void RemoteBrowserMobProxyClientConstruct()
32+
{
33+
Assert.DoesNotThrow(
34+
() =>
35+
new RemoteBrowserMobProxyClient(_clientUri));
36+
}
37+
38+
[Test]
39+
public void RemoteBrowserMobProxyInstanceList()
40+
{
41+
//Assemble
42+
IRestRequest req = null;
43+
var portList = new List<int> {9001, 9002, 9003};
44+
_restClientMoq.Setup(x => x.Execute<List<int>>(It.IsAny<IRestRequest>()))
45+
.Callback<IRestRequest>(request => req = request)
46+
.Returns(new RestResponse<List<int>> { Data = portList });
47+
48+
var list=_remoteBrowserMobProxyClient.RemoteBrowserMobProxyInstances();
49+
50+
//Assert
51+
_restClientMoq.Verify(x => x.Execute<List<int>>(It.IsAny<IRestRequest>()), Times.Once);
52+
53+
Assert.AreEqual(Method.GET,req.Method);
54+
Assert.IsEmpty(req.Parameters);
55+
56+
CollectionAssert.AreEqual(portList, list.Select(x=>x.Port));
57+
58+
}
59+
60+
61+
[Test]
62+
public void RemoteBrowserMobProxyInstance_Default()
63+
{
64+
//Assemble
65+
IRestRequest req = null;
66+
67+
_restClientMoq.Setup(x => x.Execute<CreateHarResponse>(It.IsAny<IRestRequest>()))
68+
.Callback<IRestRequest>(request => req = request)
69+
.Returns(new RestResponse<CreateHarResponse> {Data = new CreateHarResponse {Port = 9001}});
70+
71+
//Act
72+
var instance=_remoteBrowserMobProxyClient.NewRemoteBrowserMobProxyInstance();
73+
74+
//Assert
75+
_restClientMoq.Verify(x => x.Execute<CreateHarResponse>(It.IsAny<IRestRequest>()),Times.Once);
76+
77+
Assert.IsEmpty(req.Parameters);
78+
Assert.AreEqual(9001, instance.Port);
79+
}
80+
81+
[Test]
82+
public void RemoteBrowserMobProxyInstance_WithIpAddressBinding()
83+
{
84+
//Assemble
85+
IRestRequest req = null;
86+
var ipAddressString = "10.0.0.1";
87+
88+
_restClientMoq.Setup(x => x.Execute<CreateHarResponse>(It.IsAny<IRestRequest>()))
89+
.Callback<IRestRequest>(request => req = request)
90+
.Returns(new RestResponse<CreateHarResponse> { Data = new CreateHarResponse { Port = 9001 } });
91+
92+
//Act
93+
var instance = _remoteBrowserMobProxyClient.NewRemoteBrowserMobProxyInstance(IPAddress.Parse(ipAddressString));
94+
95+
//Assert
96+
_restClientMoq.Verify(x => x.Execute<CreateHarResponse>(It.IsAny<IRestRequest>()), Times.Once);
97+
98+
Assert.IsNotEmpty(req.Parameters);
99+
100+
Assert.That((string)req.Parameters.First(x => x.Name == "bindAddress").Value == ipAddressString);
101+
102+
Assert.AreEqual(9001, instance.Port);
103+
}
104+
105+
[Test]
106+
public void RemoteBrowserMobProxyInstance_WithIpAddressBinding_IpV4Check()
107+
{
108+
//Assemble
109+
IRestRequest req = null;
110+
//IPv6 address
111+
var ipAddressString = "FE80::0202:B3FF:FE1E:8329";
112+
113+
_restClientMoq.Setup(x => x.Execute<CreateHarResponse>(It.IsAny<IRestRequest>()))
114+
.Callback<IRestRequest>(request => req = request)
115+
.Returns(new RestResponse<CreateHarResponse> { Data = new CreateHarResponse { Port = 9001 } });
116+
117+
//Act
118+
Assert.Throws<ArgumentException>(
119+
() => _remoteBrowserMobProxyClient.NewRemoteBrowserMobProxyInstance(IPAddress.Parse(ipAddressString)));
120+
}
121+
122+
[Test]
123+
public void RemoteBrowserMobProxyInstance_WithPortNum()
124+
{
125+
//Assemble
126+
IRestRequest req = null;
127+
var portNum = 9001;
128+
129+
_restClientMoq.Setup(x => x.Execute<CreateHarResponse>(It.IsAny<IRestRequest>()))
130+
.Callback<IRestRequest>(request => req = request)
131+
.Returns(new RestResponse<CreateHarResponse> { Data = new CreateHarResponse { Port = portNum } });
132+
133+
//Act
134+
var instance = _remoteBrowserMobProxyClient.NewRemoteBrowserMobProxyInstance(portNum);
135+
136+
//Assert
137+
_restClientMoq.Verify(x => x.Execute<CreateHarResponse>(It.IsAny<IRestRequest>()), Times.Once);
138+
139+
Assert.IsNotEmpty(req.Parameters);
140+
141+
Assert.That((int)req.Parameters.First(x => x.Name == "port").Value == portNum);
142+
143+
Assert.AreEqual(portNum, instance.Port);
144+
}
145+
}
146+
}

RemoteBrowserMobProxy.Tests/TestBase.cs

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

RemoteBrowserMobProxy.Tests/TestHarFeatures.cs

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

0 commit comments

Comments
 (0)