Skip to content

Commit b55b1c5

Browse files
committed
Injected release notes into package spec.
1 parent e0aaff8 commit b55b1c5

File tree

4 files changed

+175
-20
lines changed

4 files changed

+175
-20
lines changed

Moq.nuspec

+148
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,153 @@
1111
<requireLicenseAcceptance>false</requireLicenseAcceptance>
1212
<description>The most popular and friendly mocking framework for .NET</description>
1313
<tags>tdd mocking mocks unittesting agile</tags>
14+
<releaseNotes>Version 4.1
15+
* Added covariant IMock{out T} interface to Mock{T}
16+
* Added It.IsNotNull{T}
17+
* Fix: 'NullReferenceException when subscribing to an event'
18+
* Added overloads to Verify to accept Times as a Method Group
19+
* Feature request: It.IsIn(..), It.IsNotIn(...)
20+
* Corrected Verify method behavior for generic methods calls
21+
* Differentiate verification error from mock crash
22+
* Fix: Adding (and removing) handlers for events declared on interfaces works
23+
when CallBase = true.
24+
* Update to latest Castle
25+
* Fix: Mock.Of (Functional Syntax) doesn't work on properties with non-public setters
26+
* Fix: Allow to use CallBase instead of Returns
27+
* Fix: Solved Multi-threading issue - IndexOutOfRangeException
28+
* Capability of mocking delegates (event handlers)
29+
30+
Version 4.0
31+
* Linq to Mocks: Mock.Of&lt;T&gt;(x =&gt; x.Id == 23 &amp;&amp; x.Title == "Rocks!")
32+
* Fixed issues:
33+
* 87 BadImageFormatException when using a mock with a Visual Studio generated Accessor object
34+
* 166 Unable to use a delegate to mock a function that takes 5 or more parameters.
35+
* 168 Call count failure message never says which is the actual invocation count
36+
* 175 theMock.Object failing on VS2010 Beta 1
37+
* 177 Generic constraint on interface method causes BadImageFormatException when getting Object.
38+
* 183 Display what invocations were recieved when the expected one hasn't been met
39+
* 186 Methods that are not virtual gives non-sense-exception message
40+
* 188 More Callback Overloads
41+
* 199 Simplify SetupAllProperties implementation to simply iterate and call SetupProperty
42+
* 200 Fluent mock does not honor parent mock CallBase setting.
43+
* 202 Mock.Protected().Expect() deprecated with no work-around
44+
* 204 Allow default return values to be specified (per-mock)
45+
* 205 Error calling SetupAllProperties for Mock{IDataErrorInfo}
46+
* 206 Linq-to-Mocks Never Returns on Implicit Boolean Property
47+
* 207 NullReferenceException thrown when using Mocks.CreateQuery with implicit boolean expression
48+
* 208 Can't setup a mock for method that accept lambda expression as argument.
49+
* 211 SetupAllProperties should return the Mock{T} instead of void.
50+
* 223 When a method is defined to make the setup an asserts mock fails
51+
* 226 Can't raise events on mocked Interop interfaces
52+
* 229 CallBase is not working for virtual events
53+
* 238 Moq fails to mock events defined in F#
54+
* 239 Use Func instead of Predicate
55+
* 250 4.0 Beta 2 regression - cannot mock MethodInfo when targetting .NET 4
56+
* 251 When a generic interface also implements a non-generic version, Verify does not work in some cases
57+
* 254 Unable to create mock of EnvDTE.DTE
58+
* 261 Can not use protected setter in public property
59+
* 267 Generic argument as dependency for method Setup overrides all previous method setups for a given method
60+
* 273 Attempting to create a mock thrown a Type Load exception. The message refers to an inaccessible interface.
61+
* 276 .Net 3.5 no more supported
62+
63+
Version 3.0
64+
65+
* Silverlight support! Finally integrated Jason's Silverlight contribution! Issue #73
66+
* Brand-new simplified event raising syntax (#130): mock.Raise(foo = foo.MyEvent += null, new MyArgs(...));
67+
* Support for custom event signatures (not compatible with EventHandler): mock.Raise(foo = foo.MyEvent += null, arg1, arg2, arg3);
68+
* Substantially improved property setter behavior: mock.VerifySet(foo = foo.Value = "foo"); //(also available for SetupSet
69+
* Renamed Expect* with Setup*
70+
* Vastly simplified custom argument matchers: public int IsOdd() { return Match{int}.Create(v = i % 2 == 0); }
71+
* Added support for verifying how many times a member was invoked: mock.Verify(foo = foo.Do(), Times.Never());
72+
* Added simple sample app named StoreSample
73+
* Moved Stub functionality to the core API (SetupProperty and SetupAllProperties)
74+
* Fixed sample ASP.NET MVC app to work with latest version
75+
* Allow custom matchers to be created with a substantially simpler API
76+
* Fixed issue #145 which prevented discrimination of setups by generic method argument types
77+
* Fixed issue #141 which prevented ref arguments matching value types (i.e. a Guid)
78+
* Implemented improvement #131: Add support for It.IsAny and custom argument matchers for SetupSet/VerifySet
79+
* Implemented improvement #124 to render better error messages
80+
* Applied patch from David Kirkland for improvement #125 to improve matching of enumerable parameters
81+
* Implemented improvement #122 to provide custom errors for Verify
82+
* Implemented improvement #121 to provide null as default value for Nullable{T}
83+
* Fixed issue #112 which fixes passing a null argument to a mock constructor
84+
* Implemented improvement #111 to better support params arguments
85+
* Fixed bug #105 about improperly overwriting setups for property getter and setter
86+
* Applied patch from Ihar.Bury for issue #99 related to protected expectations
87+
* Fixed issue #97 on not being able to use SetupSet/VerifySet if property did not have a getter
88+
* Better integration with Pex (http://research.microsoft.com/en-us/projects/Pex/)
89+
* Various other minor fixes (#134, #135, #137, #138, #140, etc.)
90+
91+
92+
Version 2.6
93+
94+
* Implemented Issue #55: We now provide a mock.DefaultValue = [DefaultValue.Empty | DefaultValue.Mock] which will provide the current behavior (default) or mocks for mockeable return types for loose mock invocations without expectations.
95+
* Added support for stubbing properties from moq-contrib: now you can do mock.Stub(m = m.Value) and add stub behavior to the property. mock.StubAll() is also provided. This integrates with the DefaultValue behavior too, so you can stub entire hierarchies :).
96+
* Added support for mocking methods with out and ref parameters (Issue #50)
97+
* Applied patch contributed by slava for Issue #72: add support to limit numbor of calls on mocked method (we now have mock.Expect(...).AtMost(5))
98+
* Implemented Issue #94: Easier setter verification: Now we support ExpectSet(m = m.Value, "foo") and VerifySet(m = m.Value, 5) (Thanks ASP.NET MVC Team!)
99+
* Implemented issue #96: Automatically chain mocks when setting expectations. It's now possible to specify expectations for an entire hierarchy of objects just starting from the root mock. THIS IS REALLY COOL!!!
100+
* Fixed Issue #89: Expects() does not always return last expectation
101+
* Implemented Issue 91: Expect a method/property to never be called (added Never() method to an expectation. Can be used on methods, property getters and setters)
102+
* Fixed Issue 86: IsAny{T} should check if the value is actually of type T
103+
* Fixed Issue 88: Cannot mock protected internal virtual methods using Moq.Protected
104+
* Fixed Issue 90: Removing event handlers from mocked objects
105+
* Updated demo and added one more test for the dynamic addition of interfaces
106+
107+
Version 2.5
108+
109+
* Added support for mocking protected members
110+
* Added new way of extending argument matchers which is now very straightforward
111+
* Added support for mocking events
112+
* Added support for firing events from expectations
113+
* Removed usage of MBROs which caused inconsistencies in mocking features
114+
* Added ExpectGet and ExpectSet to better support properties, and provide better intellisense.
115+
* Added verification with expressions, which better supports Arrange-Act-Assert testing model (can do Verify(m = m.Do(...)))
116+
* Added Throws{TException}
117+
* Added mock.CallBase property to specify whether the virtual members base implementation should be called
118+
* Added support for implementing and setting expectations and verifying additional interfaces in the mock, via the new mock.As{TInterface}() method (thanks Fernando Simonazzi!)
119+
* Improved argument type matching for Is/IsAny (thanks Jeremy.Skinner!)
120+
121+
122+
Version 2.0
123+
124+
* Refactored fluent API on mocks. This may cause some existing tests to fail, but the fix is trivial (just reorder the calls to Callback, Returns and Verifiable)
125+
* Added support for retrieving a Mock{T} from a T instance created by a mock.
126+
* Added support for retrieving the invocation arguments from a Callback or Returns.
127+
* Implemented AtMostOnce() constraint
128+
* Added support for creating MBROs with protected constructors
129+
* Loose mocks now return default empty arrays and IEnumerables instead of nulls
130+
131+
132+
Version 1.5.1
133+
134+
* Refactored MockFactory to make it simpler and more explicit to use with regards to verification. Thanks Garry Shutler for the feedback!
135+
136+
Version 1.5
137+
138+
* Added MockFactory to allow easy construction of multiple mocks with the same behavior and verification
139+
140+
Version 1.4
141+
142+
* Added support for passing constructor arguments for mocked classes.
143+
* Improved code documentation
144+
145+
Version 1.3
146+
147+
* Added support for overriding expectations set previously on a Mock. Now adding a second expectation for the same method/property call will override the existing one. This facilitates setting up default expectations in a fixture setup and overriding when necessary in a specific test.
148+
* Added support for mock verification. Both Verify and VerifyAll are provided for more flexibility (the former only verifies methods marked Verifiable)
149+
150+
Version 1.2
151+
152+
* Added support for MockBehavior mock constructor argument to affect the way the mocks expect or throw on calls.
153+
154+
Version 1.1
155+
156+
* Merged branch for dynamic types. Now Moq is based on Castle DynamicProxy2 to support a wider range of mock targets.
157+
* Added ILMerge so that Castle libraries are merged into Moq assembly (no need for external references and avoid conflicts)
158+
159+
Version 1.0
160+
161+
* Initial release, initial documentation process in place, etc. </releaseNotes>
14162
</metadata>
15163
</package>

ReleaseNotes.md

+18-18
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Version 4.1
2-
* Added covariant IMock<out T> interface to Mock<T>
3-
* Added It.IsNotNull<T>
2+
* Added covariant IMock{out T} interface to Mock{T}
3+
* Added It.IsNotNull{T}
44
* Fix: 'NullReferenceException when subscribing to an event'
55
* Added overloads to Verify to accept Times as a Method Group
66
* Feature request: It.IsIn(..), It.IsNotIn(...)
@@ -15,7 +15,7 @@ when CallBase = true.
1515
* Capability of mocking delegates (event handlers)
1616

1717
Version 4.0
18-
* Linq to Mocks: Mock.Of<`T>(x => x.Id == 23 && x.Title == "Rocks!")
18+
* Linq to Mocks: Mock.Of&lt;T&gt;(x =&gt; x.Id == 23 &amp;&amp; x.Title == "Rocks!")
1919
* Fixed issues:
2020
* 87 BadImageFormatException when using a mock with a Visual Studio generated Accessor object
2121
* 166 Unable to use a delegate to mock a function that takes 5 or more parameters.
@@ -29,11 +29,11 @@ Version 4.0
2929
* 200 Fluent mock does not honor parent mock CallBase setting.
3030
* 202 Mock.Protected().Expect() deprecated with no work-around
3131
* 204 Allow default return values to be specified (per-mock)
32-
* 205 Error calling SetupAllProperties for Mock<IDataErrorInfo>
32+
* 205 Error calling SetupAllProperties for Mock{IDataErrorInfo}
3333
* 206 Linq-to-Mocks Never Returns on Implicit Boolean Property
3434
* 207 NullReferenceException thrown when using Mocks.CreateQuery with implicit boolean expression
3535
* 208 Can't setup a mock for method that accept lambda expression as argument.
36-
* 211 SetupAllProperties should return the Mock<T> instead of void.
36+
* 211 SetupAllProperties should return the Mock{T} instead of void.
3737
* 223 When a method is defined to make the setup an asserts mock fails
3838
* 226 Can't raise events on mocked Interop interfaces
3939
* 229 CallBase is not working for virtual events
@@ -50,12 +50,12 @@ Version 4.0
5050
Version 3.0
5151

5252
* Silverlight support! Finally integrated Jason's Silverlight contribution! Issue #73
53-
* Brand-new simplified event raising syntax (#130): mock.Raise(foo => foo.MyEvent += null, new MyArgs(...));
54-
* Support for custom event signatures (not compatible with EventHandler): mock.Raise(foo => foo.MyEvent += null, arg1, arg2, arg3);
55-
* Substantially improved property setter behavior: mock.VerifySet(foo => foo.Value = "foo"); //(also available for SetupSet
53+
* Brand-new simplified event raising syntax (#130): mock.Raise(foo = foo.MyEvent += null, new MyArgs(...));
54+
* Support for custom event signatures (not compatible with EventHandler): mock.Raise(foo = foo.MyEvent += null, arg1, arg2, arg3);
55+
* Substantially improved property setter behavior: mock.VerifySet(foo = foo.Value = "foo"); //(also available for SetupSet
5656
* Renamed Expect* with Setup*
57-
* Vastly simplified custom argument matchers: public int IsOdd() { return Match<int>.Create(v => i % 2 == 0); }
58-
* Added support for verifying how many times a member was invoked: mock.Verify(foo => foo.Do(), Times.Never());
57+
* Vastly simplified custom argument matchers: public int IsOdd() { return Match{int}.Create(v = i % 2 == 0); }
58+
* Added support for verifying how many times a member was invoked: mock.Verify(foo = foo.Do(), Times.Never());
5959
* Added simple sample app named StoreSample
6060
* Moved Stub functionality to the core API (SetupProperty and SetupAllProperties)
6161
* Fixed sample ASP.NET MVC app to work with latest version
@@ -66,7 +66,7 @@ Version 3.0
6666
* Implemented improvement #124 to render better error messages
6767
* Applied patch from David Kirkland for improvement #125 to improve matching of enumerable parameters
6868
* Implemented improvement #122 to provide custom errors for Verify
69-
* Implemented improvement #121 to provide null as default value for Nullable<T>
69+
* Implemented improvement #121 to provide null as default value for Nullable{T}
7070
* Fixed issue #112 which fixes passing a null argument to a mock constructor
7171
* Implemented improvement #111 to better support params arguments
7272
* Fixed bug #105 about improperly overwriting setups for property getter and setter
@@ -79,14 +79,14 @@ Version 3.0
7979
Version 2.6
8080

8181
* Implemented Issue #55: We now provide a mock.DefaultValue = [DefaultValue.Empty | DefaultValue.Mock] which will provide the current behavior (default) or mocks for mockeable return types for loose mock invocations without expectations.
82-
* Added support for stubbing properties from moq-contrib: now you can do mock.Stub(m => m.Value) and add stub behavior to the property. mock.StubAll() is also provided. This integrates with the DefaultValue behavior too, so you can stub entire hierarchies :).
82+
* Added support for stubbing properties from moq-contrib: now you can do mock.Stub(m = m.Value) and add stub behavior to the property. mock.StubAll() is also provided. This integrates with the DefaultValue behavior too, so you can stub entire hierarchies :).
8383
* Added support for mocking methods with out and ref parameters (Issue #50)
8484
* Applied patch contributed by slava for Issue #72: add support to limit numbor of calls on mocked method (we now have mock.Expect(...).AtMost(5))
85-
* Implemented Issue #94: Easier setter verification: Now we support ExpectSet(m => m.Value, "foo") and VerifySet(m => m.Value, 5) (Thanks ASP.NET MVC Team!)
85+
* Implemented Issue #94: Easier setter verification: Now we support ExpectSet(m = m.Value, "foo") and VerifySet(m = m.Value, 5) (Thanks ASP.NET MVC Team!)
8686
* Implemented issue #96: Automatically chain mocks when setting expectations. It's now possible to specify expectations for an entire hierarchy of objects just starting from the root mock. THIS IS REALLY COOL!!!
8787
* Fixed Issue #89: Expects() does not always return last expectation
8888
* Implemented Issue 91: Expect a method/property to never be called (added Never() method to an expectation. Can be used on methods, property getters and setters)
89-
* Fixed Issue 86: IsAny<T> should check if the value is actually of type T
89+
* Fixed Issue 86: IsAny{T} should check if the value is actually of type T
9090
* Fixed Issue 88: Cannot mock protected internal virtual methods using Moq.Protected
9191
* Fixed Issue 90: Removing event handlers from mocked objects
9292
* Updated demo and added one more test for the dynamic addition of interfaces
@@ -99,17 +99,17 @@ Version 2.5
9999
* Added support for firing events from expectations
100100
* Removed usage of MBROs which caused inconsistencies in mocking features
101101
* Added ExpectGet and ExpectSet to better support properties, and provide better intellisense.
102-
* Added verification with expressions, which better supports Arrange-Act-Assert testing model (can do Verify(m => m.Do(...)))
103-
* Added Throws<TException>
102+
* Added verification with expressions, which better supports Arrange-Act-Assert testing model (can do Verify(m = m.Do(...)))
103+
* Added Throws{TException}
104104
* Added mock.CallBase property to specify whether the virtual members base implementation should be called
105-
* Added support for implementing and setting expectations and verifying additional interfaces in the mock, via the new mock.As<TInterface>() method (thanks Fernando Simonazzi!)
105+
* Added support for implementing and setting expectations and verifying additional interfaces in the mock, via the new mock.As{TInterface}() method (thanks Fernando Simonazzi!)
106106
* Improved argument type matching for Is/IsAny (thanks Jeremy.Skinner!)
107107

108108

109109
Version 2.0
110110

111111
* Refactored fluent API on mocks. This may cause some existing tests to fail, but the fix is trivial (just reorder the calls to Callback, Returns and Verifiable)
112-
* Added support for retrieving a Mock<T> from a T instance created by a mock.
112+
* Added support for retrieving a Mock{T} from a T instance created by a mock.
113113
* Added support for retrieving the invocation arguments from a Callback or Returns.
114114
* Implemented AtMostOnce() constraint
115115
* Added support for creating MBROs with protected constructors

Source/Properties/AssemblyInfo.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@
99
[assembly: AssemblyProduct("Moq")]
1010
[assembly: AssemblyTrademark("")]
1111
[assembly: AssemblyCulture("")]
12-
[assembly: AssemblyVersion("4.1.1308.2119")]
13-
[assembly: AssemblyFileVersion("4.1.1308.2119")]
12+
[assembly: AssemblyVersion("4.1.1308.2321")]
13+
[assembly: AssemblyFileVersion("4.1.1308.2321")]
1414

1515
[assembly: ComVisible(false)]
1616
[assembly: NeutralResourcesLanguage("en")]

build.proj

+7
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
<BuildRoot>$(MSBuildThisFileDirectory)</BuildRoot>
1010
<DropDirectory>$(BuildRoot)build\</DropDirectory>
1111
<NuGetExe>$(BuildRoot).nuget\NuGet.exe</NuGetExe>
12+
<ReleaseNotes>$([System.IO.File]::ReadAllText('$(BuildRoot)ReleaseNotes.md'))</ReleaseNotes>
1213
</PropertyGroup>
1314

1415
<Target Name="Build" DependsOnTargets="ReplaceCurrentVersions">
@@ -73,6 +74,12 @@
7374
<Find>AssemblyVersion\(".*?"\)</Find>
7475
<ReplaceWith>AssemblyVersion("$(FileVersion)")</ReplaceWith>
7576
</_VersionRegexTransform>
77+
<_VersionRegexTransform Include="$(BuildRoot)**\*.nuspec"
78+
Condition="'$(ReleaseNotes)' != ''">
79+
<Find><![CDATA[<releaseNotes />|<releaseNotes/>|<releaseNotes>.*</releaseNotes>]]></Find>
80+
<ReplaceWith><![CDATA[<releaseNotes>$(ReleaseNotes)</releaseNotes>]]></ReplaceWith>
81+
<Options>Singleline</Options>
82+
</_VersionRegexTransform>
7683
</ItemGroup>
7784

7885
<RegexTransform Items="@(_VersionRegexTransform)" />

0 commit comments

Comments
 (0)