or
var testChallengeData =
new
ChallengeData();
testChallengeData.responseList =
new
Response[] {
new
Response(),
new
Response(),
new
Response()};
var member = Mock.Create<Member>(Constructor.Mocked);
var rsa = Mock.Create<Vendors.RSA>(Constructor.Mocked);
Mock.SetupStatic(
typeof
(Settings), StaticConstructor.Mocked);
Mock.Arrange(() => Settings.getBool(Arg.AnyString)).IgnoreInstance().Returns(
false
);
Mock.Arrange(() => Settings.getInt(Arg.AnyString)).IgnoreInstance().Returns(3);
Mock.Arrange(() => rsa.CurrUserStatus).IgnoreInstance().Returns(Vendors.AdaptiveAuthRef.UserStatus.UNVERIFIED).OccursOnce();
Mock.Arrange(() => rsa.HasChallengeQuestions).IgnoreInstance().Returns(
true
).OccursNever();
Mock.Arrange(() => member.challengeQuestions).IgnoreInstance().Returns(testChallengeData);
Mock.Arrange(() => member.hasChallengeQuestions).CallOriginal();
member.Rsa = rsa;
Assert.IsNotNull(member.Rsa);
Assert.IsTrue(member.hasChallengeQuestions);
rsa.Assert();
Mock.Assert(() => Settings.getBool(Arg.AnyString), Occurs.Once());
[HttpGet]
[Route(
"api/DealBuilder/GetSession"
)]
public
IHttpActionResult NewVersion(
string
sessionId)
{
try
{
if
(!String.IsNullOrEmpty(sessionId))
{
try
{
return
Ok(dealbuilderRepository.GetTemplateAndXml(
new
Guid(sessionId)));
}
catch
(Exception ex)
{
return
InternalServerError(ex);
}
}
else
{
return
BadRequest(
"No Session ID was passed."
);
}
}
catch
(Exception ex)
{
// TODO: logger.Error(ex.Message, ex);
return
InternalServerError(ex);
}
}
This is what i have so far for tests on my code above.
[TestMethod]
public
void
NewVersion()
{
var repo = Mock.Create<IDealBuilderRepository>();
var controller =
new
DealBuilderController(repo);
Mock.Arrange(() => repo.Equals(Arg.IsAny<String>()));
var result = controller.NewVersion(Arg.IsAny<String>());
Mock.Assert(repo);
}
[TestMethod]
public
void
GetNewVersionFail()
{
var repo = Mock.Create<IDealBuilderRepository>();
var controller =
new
DealBuilderController(repo);
Mock.Arrange(() => repo.Equals(Arg.IsAny<Guid>()));
// .Returns(null);
var result = controller.NewVersion(
new
Guid().ToString())
as
InternalServerErrorResult ;
Mock.Assert(
typeof
(InternalServerErrorResult));
}
[TestMethod]
public async Task TestUploadEntity()
{
IContainer container = (IContainer)TestContext.Properties["IContainer"];
BaseApiController apicontroller = container.Resolve<
BaseApiController
>();
Mock.NonPublic.Arrange(apicontroller, "setUtcOffset").IgnoreArguments().IgnoreInstance();
var config = new HttpConfiguration();
var route = config.Routes.MapHttpRoute("DefaultApi", "api/{controller}/{id}");
var routeData = new HttpRouteData(route, new HttpRouteValueDictionary { { "controller", "Mobile" } });
MultipartFormDataContent formDataContent = new MultipartFormDataContent();
formDataContent.Add(new StringContent(Guid.NewGuid().ToString()), name: "EntityID");
controller.Request = request;
controller.Request.Properties[HttpPropertyKeys.HttpConfigurationKey] = config;
var result = await controller.addUpdateMessage();
}
[HttpPost]
public async Task<
string
> addUpdateMessage()
{
if (!Request.Content.IsMimeMultipartContent())
{
throw new HttpResponseException(HttpStatusCode.BadRequest);
}
var provider = await Request.Content.ReadAsMultipartAsync<
InMemoryMultipartFormDataStreamProvider
>(new InMemoryMultipartFormDataStreamProvider());
setUtcOffset();
return "Success";
}