public void Initialize()
 {
     _competitionEntryService = Substitute.For <ICompetitionEntryService>();
     _emailService            = Substitute.For <IEmailService>();
     _messageFormatter        = Substitute.For <IMessageFormatter>();
     _controller = new WatermelonController(_competitionEntryService, _emailService, _messageFormatter);
 }
        public void CompleteEntryRedirectsToThankyou()
        {
            CompetitionEntry entry      = new CompetitionEntry();
            var errorMessage            = "";
            var competitionEntryService = Substitute.For <ICompetitionEntryService>();
            var emailService            = Substitute.For <IEmailService>();
            var messageFormatter        = Substitute.For <IMessageFormatter>();
            var controller = new WatermelonController(competitionEntryService, emailService, messageFormatter);

            competitionEntryService.InsertCompetitionEntry(Arg.Any <CompetitionEntry>(), out errorMessage)
            .Returns(x =>
            {
                x[1] = "";
                return(true);
            });
            controller.ModelState.Clear();

            var actual = controller.CompetitionEntry(entry) as RedirectToRouteResult;

            Assert.IsNotNull(actual);
            Assert.AreEqual("Thankyou", actual.RouteValues["action"]);
        }