or
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);
}
}
}
Dim mJob As IJobInterface = Mock.Create(Of IJobInterface)()
<
Project
DefaultTargets
=
"Build"
xmlns
=
"http://schemas.microsoft.com/developer/msbuild/2003"
>
<
Import
Project
=
"C:\Program Files (x86)\Telerik\JustMock\Libraries\JustMock.targets"
/>
<
UsingTask
AssemblyFile
=
"$(MSBuildProjectDirectory)\..\packages\xunit.runners.1.9.1\tools\xunit.runner.msbuild.dll"
TaskName
=
"Xunit.Runner.MSBuild.xunit"
/>
<
Target
Name
=
"Build"
>
<
JustMockStart
/>
<
xunit
Assembly
=
"bin\Release\WebshopNG.Tests.dll"
/>
<
JustMockStop
/>
</
Target
>
</
Project
>