public void Edit_CanGetSurvey() { var dbsetMock = new Mock<IDbSet<Survey>>(); dbsetMock.Setup(d => d.Find(4)).Returns(new Survey() { SurveyID = 4, SubDomain = "Test", FormHash = "Something" }); var contextMock = new Mock<ISurveyOrDieContext>(); contextMock.Setup(c => c.Surveys).Returns(dbsetMock.Object); var cont = new SurveyController(contextMock.Object, null); ActionResult res = cont.Edit(4); Survey retSurv = (res as ViewResult).Model as Survey; Assert.IsNotNull(retSurv); Assert.AreEqual(4, retSurv.SurveyID); Assert.AreEqual("Test", retSurv.SubDomain); }
public void Process_CanProcess() { var dbsetMock = new Mock<IDbSet<Survey>>(); dbsetMock.Setup(d => d.Find(4)).Returns(new Survey() { SurveyID = 4, SubDomain = "wibble", FormHash = "zzxyy", ApiKey="2222-3333" }); var contextMock = new Mock<ISurveyOrDieContext>(); contextMock.Setup(c => c.Surveys).Returns(dbsetMock.Object); var wufooApiMock = new Mock<WufooApi>("one", "two"); wufooApiMock.Setup(d => d.PutWebHook("zzxyy", It.IsAny<string>(), It.IsAny<string>())).Returns(new WufooApi.WebHookResult() { Hash = "tthh" }); List<WufooApi.Field> pretendFieldList = new List<WufooApi.Field>(); pretendFieldList.Add(new WufooApi.Field() { ID = "field1", Title = "something" }); pretendFieldList.Add(new WufooApi.Field() { ID = "field4", Title = "hidden" }); wufooApiMock.Setup(d => d.GetFields("zzxyy")).Returns(pretendFieldList); var wufooFactoryMock = new Mock<WufooApiFactory>(); wufooFactoryMock.Setup(d => d.Make("wibble", "2222-3333")).Returns(wufooApiMock.Object); var cont = new SurveyController(contextMock.Object, wufooFactoryMock.Object); ActionResult res = cont.Process(4); int? returnedId = (res as JsonResult).Data as int?; Assert.IsTrue(returnedId.HasValue); Assert.AreEqual(4, returnedId.Value); wufooApiMock.VerifyAll(); }
public void Process_DetectsApiFailure() { var dbsetMock = new Mock<IDbSet<Survey>>(); dbsetMock.Setup(d => d.Find(4)).Returns(new Survey() { SurveyID = 4, SubDomain = "wibble", FormHash = "zzxyy", ApiKey = "2222-3333" }); var contextMock = new Mock<ISurveyOrDieContext>(); contextMock.Setup(c => c.Surveys).Returns(dbsetMock.Object); var wufooApiMock = new Mock<WufooApi>("one", "two"); wufooApiMock.Setup(d => d.PutWebHook("zzxyy", It.IsAny<string>(), It.IsAny<string>())).Returns( (WufooApi.WebHookResult)null); var wufooFactoryMock = new Mock<WufooApiFactory>(); wufooFactoryMock.Setup(d => d.Make("wibble", "2222-3333")).Returns(wufooApiMock.Object); var cont = new SurveyController(contextMock.Object, wufooFactoryMock.Object); bool expectedErrorFound = false; try { ActionResult res = cont.Process(4); } catch (ApplicationException appex) { if (appex.Message.StartsWith("Process action failed to put web hook")) expectedErrorFound = true; } Assert.IsTrue(expectedErrorFound); wufooApiMock.VerifyAll(); }