public void link_should_set_action_to_click()
        {
            var messageAudit = new MessageAudit
            {
                Url = "http://test.com",
                Email = "*****@*****.**",
                MessageId = 2
            };
            var mockService = new Mock<IMessageAuditService>();
            mockService.Expect(s => s.Add(messageAudit)).Returns(1);

            var con = new TrackerController(mockService.Object);

            var result = con.Link(messageAudit);

            var redirectResult = result as RedirectResult;
            Assert.AreEqual(messageAudit.Url, redirectResult.Url);
            Assert.AreEqual("Click", messageAudit.Action);
            mockService.VerifyAll();
        }
        public void link_should_redirect_to_homepage_if_url_is_missing()
        {
            var messageAudit = new MessageAudit
                                   {
                                       Email = "*****@*****.**",
                                       MessageId = 2
                                   };

            var con = new TrackerController();

            var result = con.Link(messageAudit);
            Assert.IsInstanceOfType(typeof(RedirectToRouteResult), result,
                                    "Wrong result type");
            result.AssertRedirectToRouteResult("index", "home");
        }
        public void link_should_redirect_to_url()
        {
            var messageAudit = new MessageAudit
            {
                Url = "http://test.com"
            };

            var con = new TrackerController();
            con.SetFakeControllerContext();

            var result = con.Link(messageAudit);
            Assert.IsNotNull(result, "Result is null");
            Assert.IsInstanceOfType(typeof(RedirectResult), result,
                                    "Wrong type returned");
            var redirectResult = result as RedirectResult;
            Assert.AreEqual(messageAudit.Url, redirectResult.Url);
        }
        public void link_should_record_redirect_only_if_messageid_is_present()
        {
            var messageAudit = new MessageAudit
            {
                Url = "http://test.com",
                Email = "*****@*****.**"
            };

            var con = new TrackerController();

            var result = con.Link(messageAudit);

            var redirectResult = result as RedirectResult;
            Assert.AreEqual(messageAudit.Url, redirectResult.Url);
        }