예제 #1
0
        public void TestPostCantFindTheAssembly()
        {
            HeyRememberDto heyObj = new HeyRememberDto()
            {
                Domain = "Banana"
            };
            var response = _heyController.Post(heyObj);

            Assert.IsInstanceOf <ExceptionResult>(response);
            _scheduleTypeMock.Verify(type => type.Schedule(It.IsAny <HeyRememberDeferredExecution>()), Times.Never);
        }
예제 #2
0
        public void TestPostCanFindTheMethodButHangFireIsNotRunning()
        {
            HeyRememberDto heyObj = new HeyRememberDto()
            {
                Domain             = "Hey.Api.Rest.Tests",
                Name               = "Test",
                DomainSpecificData = $"[{JsonConvert.SerializeObject(DateTime.Now)}, \"abc\"]"
            };

            var scheduleTypeMock = new Mock <IScheduleType>();

            scheduleTypeMock
            .Setup(type => type.Prototype())
            .Returns(scheduleTypeMock.Object);
            scheduleTypeMock
            .Setup(type => type.Schedule(It.IsAny <HeyRememberDeferredExecution>()))
            .Throws <Exception>();

            var scheduleTypeFactoryMock = new Mock <IJobRepository>();

            scheduleTypeFactoryMock
            .Setup(factory => factory.MakeASchedulePrototype(It.IsAny <HeyRememberDto>()))
            .Returns(scheduleTypeMock.Object);

            var heyController = new HeyController(new HeyService(scheduleTypeFactoryMock.Object, new LogExceptionHandler()));
            var response      = heyController.Post(heyObj);

            Assert.IsInstanceOf <ExceptionResult>(response);
            scheduleTypeMock.Verify(type => type.Schedule(It.IsAny <HeyRememberDeferredExecution>()));
        }
예제 #3
0
        public void TestThatWhenTheJobIsScheduledItIsReturnedTheCorrectHttpPath()
        {
            Mock <IMethodBinder> methodBinderMock = new Mock <IMethodBinder>();

            methodBinderMock
            .Setup(binder => binder.CreateDeferredExecution())
            .Returns(new HeyRememberDeferredExecution()
            {
                HeyRemember = _heyObj
            });

            Mock <IScheduleType> scheduleTypeMock = new Mock <IScheduleType>();

            scheduleTypeMock
            .Setup(type => type.Schedule(It.IsAny <HeyRememberDeferredExecution>()))
            .Returns("banana");

            OkHeyResponse response    = new OkHeyResponse(methodBinderMock.Object, scheduleTypeMock.Object, new CreatedHttpReturn());
            var           serviceMock = new Mock <IHeyService>();

            serviceMock
            .Setup(service => service.Create(_heyObj, false))
            .Returns(response);

            HeyController controller = new HeyController(serviceMock.Object)
            {
                Request       = _httpRequestMessage,
                Configuration = _httpConfiguration
            };
            IHttpActionResult result = controller.Post(_heyObj);

            Assert.IsInstanceOf <CreatedAtRouteNegotiatedContentResult <HeyRememberDto> >(result);
            var createdAtResult = result as CreatedAtRouteNegotiatedContentResult <HeyRememberDto>;

            Assert.AreEqual("DefaultApi", createdAtResult.RouteName);
            Assert.AreEqual("TestDomain/TestType/TestId/Default/banana", createdAtResult.RouteValues["id"]);
        }