Skip to content

Commit 52202f2

Browse files
committed
Updating .NET tests to NMock3
1 parent 19c841e commit 52202f2

18 files changed

+35738
-506
lines changed

dotnet/test/common/ByTest.cs

+12-11
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,37 @@
11
using NUnit.Framework;
2-
using NMock2;
2+
using NMock;
33
using OpenQA.Selenium.Internal;
44

55
namespace OpenQA.Selenium
66
{
77
[TestFixture]
88
public class ByTest
99
{
10-
private Mockery mocks = new Mockery();
10+
private MockFactory mocks = new MockFactory();
1111

1212
[Test]
1313
public void ShouldUseFindsByNameToLocateElementsByName()
1414
{
15-
var mockDriver = mocks.NewMock<IAllDriver>();
16-
var mockElement = mocks.NewMock<IWebElement>();
17-
Expect.Once.On(mockDriver).Method("FindElementByName").With("cheese").Will(Return.Value(mockElement));
15+
var mockDriver = mocks.CreateMock<IAllDriver>();
16+
var mockElement = mocks.CreateMock<IWebElement>();
17+
18+
mockDriver.Expects.One.Method(_ => _.FindElementByName(null)).With("cheese").Will(Return.Value(mockElement.MockObject));
1819

1920
By by = By.Name("cheese");
20-
by.FindElement(mockDriver);
21+
by.FindElement(mockDriver.MockObject);
2122
mocks.VerifyAllExpectationsHaveBeenMet();
2223
}
2324

2425
// TODO (jimevan): This test is disabled in the Java implementation unit tests.
25-
// Is the functionality not implemented?
26+
// Is the functionality not implemented?*
2627
public void ShouldUseXPathToFindByNameIfDriverDoesNotImplementFindsByName()
2728
{
28-
var mockDriver = mocks.NewMock<IOnlyXPath>();
29-
var mockElement = mocks.NewMock<IWebElement>();
30-
Expect.Once.On(mockDriver).Method("FindElementByXPath").With("//*[@name='cheese']").Will(Return.Value(mockElement));
29+
var mockDriver = mocks.CreateMock<IOnlyXPath>();
30+
var mockElement = mocks.CreateMock<IWebElement>();
31+
mockDriver.Expects.One.Method(_ => _.FindElementByXPath("//*[@name='cheese']")).WillReturn(mockElement.MockObject);
3132

3233
By by = By.Name("cheese");
33-
by.FindElement(mockDriver);
34+
by.FindElement(mockDriver.MockObject);
3435
mocks.VerifyAllExpectationsHaveBeenMet();
3536
}
3637

dotnet/test/common/WebDriver.Common.Tests.csproj

+2-2
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@
3030
<WarningLevel>4</WarningLevel>
3131
</PropertyGroup>
3232
<ItemGroup>
33-
<Reference Include="NMock2">
34-
<HintPath>..\..\..\third_party\dotnet\nmock-2.0.0.44\NMock2.dll</HintPath>
33+
<Reference Include="NMock3">
34+
<HintPath>..\..\..\third_party\dotnet\nmock-3.3.5.44\net40\NMock3.dll</HintPath>
3535
</Reference>
3636
<Reference Include="nunit.core">
3737
<HintPath>..\..\..\third_party\dotnet\nunit-3.6.0\addins\nunit.core.dll</HintPath>

dotnet/test/support/Events/EventFiringWebDriverTest.cs

+36-34
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
using System;
1+
using System;
22
using System.Collections.Generic;
33
using System.Text;
4-
using NMock2;
4+
using NMock;
55
using NUnit.Framework;
66
using System.Collections.ObjectModel;
77
using OpenQA.Selenium.Internal;
@@ -11,32 +11,33 @@ namespace OpenQA.Selenium.Support.Events
1111
[TestFixture]
1212
public class EventFiringWebDriverTest
1313
{
14-
private Mockery mocks;
15-
private IWebDriver mockDriver;
16-
private IWebElement mockElement;
17-
private INavigation mockNavigation;
14+
private MockFactory mocks;
15+
private Mock<IWebDriver> mockDriver;
16+
private Mock<IWebElement> mockElement;
17+
private Mock<INavigation> mockNavigation;
18+
private IWebDriver stubDriver;
1819
private StringBuilder log;
1920

2021
[SetUp]
2122
public void Setup()
2223
{
23-
mocks = new Mockery();
24-
mockDriver = mocks.NewMock<IWebDriver>();
25-
mockElement = mocks.NewMock<IWebElement>();
26-
mockNavigation = mocks.NewMock<INavigation>();
24+
mocks = new MockFactory();
25+
mockDriver = mocks.CreateMock<IWebDriver>();
26+
mockElement = mocks.CreateMock<IWebElement>();
27+
mockNavigation = mocks.CreateMock<INavigation>();
2728
log = new StringBuilder();
2829
}
2930

3031
[Test]
3132
public void ShouldFireNavigationEvents()
3233
{
33-
Expect.Once.On(mockDriver).SetProperty("Url").To("http://www.get.com");
34-
Expect.Exactly(3).On(mockDriver).Method("Navigate").Will(Return.Value(mockNavigation));
35-
Expect.Once.On(mockNavigation).Method("GoToUrl").With("http://www.navigate-to.com");
36-
Expect.Once.On(mockNavigation).Method("Back");
37-
Expect.Once.On(mockNavigation).Method("Forward");
34+
mockDriver.Expects.One.SetPropertyTo(_ => _.Url = "http://www.get.com");
35+
mockDriver.Expects.Exactly(3).Method<INavigation>(_ => _.Navigate()).WillReturn(mockNavigation.MockObject);
36+
mockNavigation.Expects.One.Method(_ => _.GoToUrl((string)null)).With("http://www.navigate-to.com");
37+
mockNavigation.Expects.One.Method(_ => _.Back());
38+
mockNavigation.Expects.One.Method(_ => _.Forward());
3839

39-
EventFiringWebDriver firingDriver = new EventFiringWebDriver(mockDriver);
40+
EventFiringWebDriver firingDriver = new EventFiringWebDriver(mockDriver.MockObject);
4041
firingDriver.Navigating += new EventHandler<WebDriverNavigationEventArgs>(firingDriver_Navigating);
4142
firingDriver.Navigated += new EventHandler<WebDriverNavigationEventArgs>(firingDriver_Navigated);
4243
firingDriver.NavigatingBack += new EventHandler<WebDriverNavigationEventArgs>(firingDriver_NavigatingBack);
@@ -64,10 +65,10 @@ Navigated forward
6465
[Test]
6566
public void ShouldFireClickEvent()
6667
{
67-
Expect.Once.On(mockDriver).Method("FindElement").With(By.Name("foo")).Will(Return.Value(mockElement));
68-
Expect.Once.On(mockElement).Method("Click");
68+
mockDriver.Expects.One.Method(_ => _.FindElement(null)).With(By.Name("foo")).WillReturn(mockElement.MockObject);
69+
mockElement.Expects.One.Method(_ => _.Click());
6970

70-
EventFiringWebDriver firingDriver = new EventFiringWebDriver(mockDriver);
71+
EventFiringWebDriver firingDriver = new EventFiringWebDriver(mockDriver.MockObject);
7172
firingDriver.ElementClicking += new EventHandler<WebElementEventArgs>(firingDriver_ElementClicking);
7273
firingDriver.ElementClicked += new EventHandler<WebElementEventArgs>(firingDriver_ElementClicked);
7374

@@ -84,12 +85,13 @@ public void ShouldFireFindByEvent()
8485
{
8586
IList<IWebElement> driverElements = new List<IWebElement>();
8687
IList<IWebElement> subElements = new List<IWebElement>();
87-
Expect.Once.On(mockDriver).Method("FindElement").With(By.Id("foo")).Will(Return.Value(mockElement));
88-
Expect.Once.On(mockElement).Method("FindElement").With(By.LinkText("bar"));
89-
Expect.Once.On(mockElement).Method("FindElements").With(By.Name("xyz")).Will(Return.Value(new ReadOnlyCollection<IWebElement>(driverElements)));
90-
Expect.Once.On(mockDriver).Method("FindElements").With(By.XPath("//link[@type = 'text/css']")).Will(Return.Value(new ReadOnlyCollection<IWebElement>(subElements)));
88+
Mock<IWebElement> ignored = mocks.CreateMock<IWebElement>();
89+
mockDriver.Expects.One.Method(_ => _.FindElement(null)).With(By.Id("foo")).WillReturn(mockElement.MockObject);
90+
mockElement.Expects.One.Method(_ => _.FindElement(null)).WithAnyArguments().WillReturn(ignored.MockObject);
91+
mockElement.Expects.One.Method(_ => _.FindElements(null)).With(By.Name("xyz")).WillReturn(new ReadOnlyCollection<IWebElement>(driverElements));
92+
mockDriver.Expects.One.Method(_ => _.FindElements(null)).With(By.XPath("//link[@type = 'text/css']")).WillReturn(new ReadOnlyCollection<IWebElement>(subElements));
9193

92-
EventFiringWebDriver firingDriver = new EventFiringWebDriver(mockDriver);
94+
EventFiringWebDriver firingDriver = new EventFiringWebDriver(mockDriver.MockObject);
9395
firingDriver.FindingElement += new EventHandler<FindElementEventArgs>(firingDriver_FindingElement);
9496
firingDriver.FindElementCompleted += new EventHandler<FindElementEventArgs>(firingDriver_FindElementCompleted);
9597

@@ -115,9 +117,9 @@ public void ShouldFireFindByEvent()
115117
public void ShouldCallListenerOnException()
116118
{
117119
NoSuchElementException exception = new NoSuchElementException("argh");
118-
Expect.Once.On(mockDriver).Method("FindElement").With(By.Id("foo")).Will(Throw.Exception(exception));
120+
mockDriver.Expects.One.Method(_ => _.FindElement(null)).With(By.Id("foo")).Will(Throw.Exception(exception));
119121

120-
EventFiringWebDriver firingDriver = new EventFiringWebDriver(mockDriver);
122+
EventFiringWebDriver firingDriver = new EventFiringWebDriver(mockDriver.MockObject);
121123
firingDriver.ExceptionThrown += new EventHandler<WebDriverExceptionEventArgs>(firingDriver_ExceptionThrown);
122124

123125
try
@@ -136,11 +138,11 @@ public void ShouldCallListenerOnException()
136138
[Test]
137139
public void ShouldUnwrapElementArgsWhenCallingScripts()
138140
{
139-
IExecutingDriver executingDriver = mocks.NewMock<IExecutingDriver>();
140-
Expect.Once.On(executingDriver).Method("FindElement").With(By.Id("foo")).Will(Return.Value(mockElement));
141-
Expect.Once.On(executingDriver).Method("ExecuteScript").With("foo", new[] { mockElement }).Will(Return.Value("foo"));
141+
Mock<IExecutingDriver> executingDriver = mocks.CreateMock<IExecutingDriver>();
142+
executingDriver.Expects.One.Method(_ => _.FindElement(null)).With(By.Id("foo")).WillReturn(mockElement.MockObject);
143+
executingDriver.Expects.One.Method(_ => _.ExecuteScript(null, null)).With("foo", new[] { mockElement.MockObject }).WillReturn("foo");
142144

143-
EventFiringWebDriver testedDriver = new EventFiringWebDriver(executingDriver);
145+
EventFiringWebDriver testedDriver = new EventFiringWebDriver(executingDriver.MockObject);
144146

145147
IWebElement element = testedDriver.FindElement(By.Id("foo"));
146148
try
@@ -164,18 +166,18 @@ public void ShouldBeAbleToWrapSubclassesOfSomethingImplementingTheWebDriverInter
164166
[Test]
165167
public void ShouldBeAbleToAccessWrappedInstanceFromEventCalls()
166168
{
167-
mockDriver = new StubDriver();
168-
EventFiringWebDriver testDriver = new EventFiringWebDriver(mockDriver);
169+
stubDriver = new StubDriver();
170+
EventFiringWebDriver testDriver = new EventFiringWebDriver(stubDriver);
169171
StubDriver wrapped = ((IWrapsDriver)testDriver).WrappedDriver as StubDriver;
170-
Assert.AreEqual(mockDriver, wrapped);
172+
Assert.AreEqual(stubDriver, wrapped);
171173
testDriver.Navigating += new EventHandler<WebDriverNavigationEventArgs>(testDriver_Navigating);
172174

173175
testDriver.Url = "http://example.org";
174176
}
175177

176178
void testDriver_Navigating(object sender, WebDriverNavigationEventArgs e)
177179
{
178-
Assert.AreEqual(e.Driver, mockDriver);
180+
Assert.AreEqual(e.Driver, stubDriver);
179181
}
180182

181183
void firingDriver_ExceptionThrown(object sender, WebDriverExceptionEventArgs e)
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
using System.Collections;
1+
using System.Collections;
22
using System.Collections.Generic;
33
using System.Collections.ObjectModel;
44

5-
using NMock2;
5+
using NMock;
66

77
using NUnit.Framework;
88

@@ -25,123 +25,124 @@ public class ExecuteJavaScriptTest
2525
private const string JavaScript = "Hello, World";
2626
private static readonly object[] JavaScriptParameters = new object[0];
2727

28-
private Mockery mocks;
29-
private IJavaScriptExecutingWebDriver driver;
28+
private MockFactory mocks;
29+
private Mock<IJavaScriptExecutingWebDriver> driver;
3030

3131
[SetUp]
3232
public void TestSetUp()
3333
{
34-
mocks = new Mockery();
34+
mocks = new MockFactory();
3535

36-
driver = mocks.NewMock<IJavaScriptExecutingWebDriver>();
36+
driver = mocks.CreateMock<IJavaScriptExecutingWebDriver>();
3737
}
3838

3939
[Test]
4040
public void ShouldConvertToIEnumerable()
4141
{
4242
var expected = new ReadOnlyCollection<object>(new List<object>());
4343

44-
Expect.Once.On(driver)
45-
.Method("ExecuteScript")
44+
driver.Expects.One
45+
.Method(_ => _.ExecuteScript(null, null))
4646
.With(JavaScript, JavaScriptParameters)
4747
.Will(Return.Value(expected));
4848

49-
Assert.That(() => driver.ExecuteJavaScript<IEnumerable>(JavaScript, JavaScriptParameters), Throws.Nothing);
49+
Assert.That(() => driver.MockObject.ExecuteJavaScript<IEnumerable>(JavaScript, JavaScriptParameters), Throws.Nothing);
5050
}
5151

5252
[Test]
5353
public void ShouldConvertToIEnumerableOfObject()
5454
{
5555
var expected = new ReadOnlyCollection<object>(new List<object>());
5656

57-
Expect.Once.On(driver)
58-
.Method("ExecuteScript")
57+
driver.Expects.One
58+
.Method(_ => _.ExecuteScript(null, null))
5959
.With(JavaScript, JavaScriptParameters)
6060
.Will(Return.Value(expected));
6161

62-
Assert.That(() => driver.ExecuteJavaScript<IEnumerable<object>>(JavaScript, JavaScriptParameters), Throws.Nothing);
62+
Assert.That(() => driver.MockObject.ExecuteJavaScript<IEnumerable<object>>(JavaScript, JavaScriptParameters), Throws.Nothing);
6363
}
6464

6565
[Test]
6666
public void ShouldNotConvertToIEnumerableOfInteger()
6767
{
6868
var expected = new ReadOnlyCollection<object>(new List<object>());
6969

70-
Expect.Once.On(driver)
71-
.Method("ExecuteScript")
70+
driver.Expects.One
71+
.Method(_ => _.ExecuteScript(null, null))
7272
.With(JavaScript, JavaScriptParameters)
7373
.Will(Return.Value(expected));
7474

75-
Assert.That(() => driver.ExecuteJavaScript<IEnumerable<int>>(JavaScript, JavaScriptParameters), Throws.InstanceOf<WebDriverException>());
75+
Assert.That(() => driver.MockObject.ExecuteJavaScript<IEnumerable<int>>(JavaScript, JavaScriptParameters), Throws.InstanceOf<WebDriverException>());
7676
}
7777

7878
[Test]
7979
public void ShouldConvertToReadOnlyCollectionOfObject()
8080
{
8181
var expected = new ReadOnlyCollection<object>(new List<object>());
8282

83-
Expect.Once.On(driver)
84-
.Method("ExecuteScript")
83+
driver.Expects.One
84+
.Method(_ => _.ExecuteScript(null, null))
8585
.With(JavaScript, JavaScriptParameters)
8686
.Will(Return.Value(expected));
8787

88-
Assert.That(() => driver.ExecuteJavaScript<ReadOnlyCollection<object>>(JavaScript, JavaScriptParameters), Throws.Nothing);
88+
Assert.That(() => driver.MockObject.ExecuteJavaScript<ReadOnlyCollection<object>>(JavaScript, JavaScriptParameters), Throws.Nothing);
8989
}
9090

9191
[Test]
9292
public void ShouldNotConvertToSubClassOfReadOnlyCollectionOfObject()
9393
{
9494
var expected = new ReadOnlyCollection<object>(new List<object>());
9595

96-
Expect.Once.On(driver)
97-
.Method("ExecuteScript")
96+
driver.Expects.One
97+
.Method(_ => _.ExecuteScript(null, null))
9898
.With(JavaScript, JavaScriptParameters)
9999
.Will(Return.Value(expected));
100100

101-
Assert.That(() => driver.ExecuteJavaScript<SubClassOfReadOnlyCollectionOfObject>(JavaScript, JavaScriptParameters), Throws.InstanceOf<WebDriverException>());
101+
Assert.That(() => driver.MockObject.ExecuteJavaScript<SubClassOfReadOnlyCollectionOfObject>(JavaScript, JavaScriptParameters), Throws.InstanceOf<WebDriverException>());
102102
}
103103

104104
[Test]
105105
public void ShouldNotThrowWhenNullIsReturned()
106106
{
107-
Expect.Once.On(driver)
108-
.Method("ExecuteScript")
107+
driver.Expects.One
108+
.Method(_ => _.ExecuteScript(null, null))
109109
.With(JavaScript, JavaScriptParameters)
110110
.Will(Return.Value(null));
111111

112-
Assert.That(() => driver.ExecuteJavaScript<string>(JavaScript, JavaScriptParameters), Throws.Nothing);
112+
Assert.That(() => driver.MockObject.ExecuteJavaScript<string>(JavaScript, JavaScriptParameters), Throws.Nothing);
113113
}
114114

115115
[Test]
116116
public void ShouldNotThrowWhenNullIsReturnedForNullableValueType()
117117
{
118-
Expect.Once.On(driver)
119-
.Method("ExecuteScript")
118+
driver.Expects.One
119+
.Method(_ => _.ExecuteScript(null, null))
120120
.With(JavaScript, JavaScriptParameters)
121121
.Will(Return.Value(null));
122122

123-
Assert.That(() => driver.ExecuteJavaScript<int?>(JavaScript, JavaScriptParameters), Throws.Nothing);
123+
Assert.That(() => driver.MockObject.ExecuteJavaScript<int?>(JavaScript, JavaScriptParameters), Throws.Nothing);
124124
}
125125

126126
[Test]
127127
public void ShouldThrowWhenNullIsReturnedForValueType()
128128
{
129-
Expect.Once.On(driver)
130-
.Method("ExecuteScript")
129+
driver.Expects.One
130+
.Method(_ => _.ExecuteScript(null, null))
131131
.With(JavaScript, JavaScriptParameters)
132132
.Will(Return.Value(null));
133133

134-
Assert.That(() => driver.ExecuteJavaScript<int>(JavaScript, JavaScriptParameters), Throws.InstanceOf<WebDriverException>());
134+
Assert.That(() => driver.MockObject.ExecuteJavaScript<int>(JavaScript, JavaScriptParameters), Throws.InstanceOf<WebDriverException>());
135135
}
136136

137137
[Test]
138138
public void ShouldAllowExecutingJavaScriptWithoutReturningResult()
139139
{
140-
Expect.Once.On(driver)
141-
.Method("ExecuteScript")
142-
.With(JavaScript, JavaScriptParameters);
140+
driver.Expects.One
141+
.Method(_ => _.ExecuteScript(null, null))
142+
.With(JavaScript, JavaScriptParameters)
143+
.WillReturn(null);
143144

144-
Assert.That(() => driver.ExecuteJavaScript(JavaScript, JavaScriptParameters), Throws.Nothing);
145+
Assert.That(() => driver.MockObject.ExecuteJavaScript(JavaScript, JavaScriptParameters), Throws.Nothing);
145146
}
146147
}
147148
}

0 commit comments

Comments
 (0)