or
[TestClass]
public
class
JustMockTest
{
[TestMethod]
public
void
TestMethod()
{
Mock.SetupStatic(
typeof
(Real));
IntPtr test;
Mock.Arrange(() => Real.RealMethod(Arg.IsAny<
int
>(),
out
test)).IgnoreArguments().Returns((
int
a, IntPtr b) => Fake.FakeMethod(a,
out
b));
IntPtr expected;
int
result = Real.RealMethod(1,
out
expected);
}
}
public
static
class
Real
{
public
static
int
RealMethod(
int
a,
out
IntPtr b)
{
b =
new
IntPtr(222);
return
a*2;
}
}
public
static
class
Fake
{
public
static
int
FakeMethod(
int
a,
out
IntPtr b)
{
b =
new
IntPtr(111);
return
a * 4;
}
}
01.
using
System;
02.
using
System.Collections.Generic;
03.
using
System.Linq;
04.
using
System.Text;
05.
using
System.Threading.Tasks;
06.
using
Microsoft.Practices.EnterpriseLibrary.Data;
07.
using
System.Data;
08.
using
System.Data.Common;
09.
// Other using statements for Models
10.
11.
namespace
Test.Repository
12.
{
13.
public
class
MyDatabaseRepo : IMyDatabaseRepo
14.
{
15.
// Microsoft.Practices.EnterpriseLibrary.Data 'Database' object
16.
readonly
Database _database;
17.
18.
public
MyDatabaseRepo(Database dataSource)
19.
{
20.
_database = dataSource;
21.
}
22.
23.
public
int
InsertNewCustomer(ClientEntity client)
24.
{
25.
int
ClientRecordId = 0;
26.
using
(DbCommand dbCmd = _da.GetStoredProcCommand(
"usp_InsertNewCustomers"
))
27.
{
28.
_database.AddInParameter(dbCmd,
"@Address1"
, DbType.String, client.Address1);
29.
_database.AddInParameter(dbCmd,
"@Address2"
, DbType.String, client.Address2);
30.
_database.AddInParameter(dbCmd,
"@City"
, DbType.String, client.City);
31.
_database.AddInParameter(dbCmd,
"@State"
, DbType.String, client.State);
32.
_database.AddInParameter(dbCmd,
"PostalCode"
, DbType.String, client.PostalCode);
33.
_database.AddOutParameter(dbCmd,
"@recordID"
, DbType.Int32, 0);
34.
35.
using
(IDataReader reader = _database.ExecuteReader(dbCmd))
36.
{
37.
reader.Read();
38.
ClientRecordId = Convert.ToInt32(dbCmd.Parameters[
"@recordID"
].Value);
39.
}
40.
}
41.
42.
return
ClientRecordId;
43.
}
44.
}
45.
}
var actionContext = Mock.Create<
HttpActionContext
>();
var actionDescriptor = Mock.Create<
HttpActionDescriptor
>();
actionContext.ActionDescriptor = actionDescriptor;
actionDescriptor.Arrange(a => a.GetCustomAttributes<
AllowAnonymousAttribute
>())
.Returns(new Collection<
AllowAnonymousAttribute
>());
var controllerContext = Mock.Create<
HttpControllerContext
>();
actionContext.ControllerContext = controllerContext;
var controllerDescriptor = Mock.Create<
HttpControllerDescriptor
>();
controllerContext.ControllerDescriptor = controllerDescriptor;
controllerDescriptor.Arrange(a => a.GetCustomAttributes<
AllowAnonymousAttribute
>())
.Returns(new Collection<
AllowAnonymousAttribute
>());
var requestContext = Mock.Create<
HttpRequestContext
>();
controllerContext.RequestContext = requestContext;
var request = Mock.Create<
HttpRequestMessage
>();
request.Properties.Add(HttpPropertyKeys.HttpConfigurationKey, new HttpConfiguration());
actionContext.Arrange(x => x.Request).Returns(request);
var principal = Mock.Create<
IPrincipal
>();
requestContext.Principal = principal;
var identity = Mock.Create<
IIdentity
>();
principal.Arrange(x => x.Identity).Returns(identity);
identity.Arrange(x => x.IsAuthenticated).Returns(true);
var attribute = new PermissionsAttribute("TEST_ROLE");
attribute.OnAuthorization(actionContext);
Assert.IsNotNull(actionContext.Response);
Assert.AreEqual(HttpStatusCode.Forbidden, actionContext.Response.StatusCode);
Test method Tests.Filters.PermissionsAttributeTests.Test_403 threw exception: <
br
>System.NullReferenceException: Object reference not set to an instance of an object.<
br
> at System.Net.Http.Headers.MediaTypeHeaderValue.GetHashCode()<
br
> at System.ValueType.GetHashCode()<
br
> at System.Collections.Generic.ObjectEqualityComparer`1.GetHashCode(T obj)<
br
> at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)<
br
> at System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value)<
br
> at Telerik.JustMock.Core.Behaviors.RecursiveMockingBehavior.Process(Invocation invocation)<
br
> at Telerik.JustMock.Core.MocksRepository.DispatchInvocation(Invocation invocation)<
br
> at Telerik.JustMock.Core.ProfilerInterceptor.Intercept(RuntimeTypeHandle typeHandle, RuntimeMethodHandle methodHandle, Object[] data)<
br
> at System.Net.Http.Headers.MediaTypeHeaderValue.get_MediaType()<
br
> at System.Net.Http.Formatting.ParsedMediaTypeHeaderValue..ctor(MediaTypeHeaderValue mediaType)<
br
> at System.Net.Http.Formatting.MediaTypeHeaderValueExtensions.IsSubsetOf(MediaTypeHeaderValue mediaType1, MediaTypeHeaderValue mediaType2, ref MediaTypeHeaderValueRange mediaType2Range)<
br
> at System.Net.Http.Formatting.MediaTypeHeaderValueExtensions.IsSubsetOf(MediaTypeHeaderValue mediaType1, MediaTypeHeaderValue mediaType2)<
br
> at System.Net.Http.Formatting.DefaultContentNegotiator.MatchRequestMediaType(HttpRequestMessage request, MediaTypeFormatter formatter)<
br
> at System.Net.Http.Formatting.DefaultContentNegotiator.ComputeFormatterMatches(Type type, HttpRequestMessage request, IEnumerable`1 formatters)<
br
> at System.Net.Http.Formatting.DefaultContentNegotiator.Negotiate(Type type, HttpRequestMessage request, IEnumerable`1 formatters)<
br
> at System.Web.Http.Results.NegotiatedContentResult`1.Execute(HttpStatusCode statusCode, T content, IContentNegotiator contentNegotiator, HttpRequestMessage request, IEnumerable`1 formatters)<
br
> at System.Net.Http.HttpRequestMessageExtensions.CreateResponse(HttpRequestMessage request, HttpStatusCode statusCode, T value, HttpConfiguration configuration)<
br
> at System.Net.Http.HttpRequestMessageExtensions.CreateErrorResponse(HttpRequestMessage request, HttpStatusCode statusCode, Func`2 errorCreator)<
br
> at System.Net.Http.HttpRequestMessageExtensions.CreateErrorResponse(HttpRequestMessage request, HttpStatusCode statusCode, HttpError error)<
br
> at System.Net.Http.HttpRequestMessageExtensions.CreateErrorResponse(HttpRequestMessage request, HttpStatusCode statusCode, String message)<
br
> at PermissionsAttribute.HandleUnauthorizedRequest(HttpActionContext actionContext) in PermissionsAttribute.cs: line 48<
br
> at System.Web.Http.AuthorizeAttribute.OnAuthorization(HttpActionContext actionContext)<
br
> at Tests.Filters.PermissionsAttributeTests.Test_403() in PermissionsAttributeTests.cs: line 91
var mock = Mock.Create<Thread>(Constructor.Mocked);
Assert.IsNotNull(mock);
Telerik.JustMock.MockException: Cannot create mock for sensitive types.
AllowedMockableTypes.Add<Thread>();
public IEnumerable<
string
>GetListTitles(){
ClientContext ctx = new ClientContext(SiteUrl);
ctx
.Credentials = CredentialCache.DefaultCredentials;
ListCollection lists = ctx.Web.Lists;ctx.Load(lists);
foreach(List list in lists)
{
yield return list.Title;
}
}
var mockCtx = Mock.Create<ClientContext>(Constructor.Mocked);
var mockWeb = Mock.Create<Web>();
var mockLists = Mock.Create<ListCollection>();
var mockList = Mock.Create<List>();
Mock.Arrange( () => mockCtx.Web).Returns(mockWeb);
Mock.Arrange( () => mockWeb.Lists).Returns(mockLists);
Mock.Arrange( () => mockLists[Arg.AnyInt]).Returns(mockList);
Mock.Arrange( () => mockList.Title)).Returnsa("fakeTitle");
Mock.Arrange( () => mockCtx.Load<ListCollection>(mockLists)).DoNothing();
Mock.Arrange( () => mockCtx.ExecuteQuery()).DoNothing();
var actual = SUT.GetListTitlesByCSOM();
Assert.AreEqual(expected, actual);
public
ICollection<RawCatalog> ReadCatalog(
string
familyName)
{
// Root folder for the family
string
familyFolder =
this
.GetFamilyFolder(familyName);
DirectoryInfo familyFolderInfo =
new
DirectoryInfo(familyFolder);
foreach
(DirectoryInfo subFamilyFolderInfo
in
familyFolderInfo.EnumerateDirectories())
{
// Do stuff
}
}
// Arrange
DirectoryInfo fakeDirectoryInfo = Mock.Create<DirectoryInfo>(Constructor.Mocked);
Mock.Arrange(() =>
new
DirectoryInfo(@
"testRoot\DrivesData\TestFamily"
)).Returns(fakeDirectoryInfo);
Mock.Arrange(() => directoryInfo.EnumerateDirectories()).Returns(
new
DirectoryInfo[] { });
using
System;
using
System.Threading.Tasks;
using
Microsoft.VisualStudio.TestTools.UnitTesting;
using
Telerik.JustMock;
namespace
JustMockThreadIssue
{
public
class
Helper
{
public
static
void
DoSomething()
{
Console.WriteLine(
"DoSomething"
);
}
}
public
class
Worker
{
public
void
Do()
{
Task.Factory.StartNew(DoMyJob);
//DoMyJob();
}
private
void
DoMyJob()
{
Helper.DoSomething();
}
}
[TestClass]
public
class
JustMockThreadIssueTest
{
[TestMethod]
public
void
Worker_Do()
{
var called =
false
;
Mock.Arrange(() => Helper.DoSomething()).DoInstead(() => called =
true
);
var worker =
new
Worker();
worker.Do();
Assert.IsTrue(called);
}
}
}