public void TestBuildSuccess_MutedMessage() { string testStr = "{\"application\": { \"name\": \"Test Project 1\" }, \"build\": { \"commit\": { \"id\": \"" + Guid.NewGuid() + "\", \"message\": \"Implement foo-\" }, \"status\": \"succeeded\" } }"; var deserializedJsonObject = JsonConvert.DeserializeObject <Notification>(testStr); var db = new TestTweetHarborDbContext(); var user = UserHelper.ArrangeNewUserDefault(); db.Users.Add(user); var proj = new Project() { ProjectName = "The Test Project", SendPrivateTweetOnFailure = true, SendPrivateTweetOnSuccess = true, SendPublicTweetOnFailure = false, SendPublicTweetOnSuccess = true, User = user }; db.Projects.Add(proj); proj.MessageRecipients.Add(new TwitterMessageRecipient() { ScreenName = "sethwebster" }); user.Projects = new Collection <Project>(); user.Projects.Add(proj); var m = new Mock <ITweetHarborTextMessageService>(); m.Setup(a => a.SendText("", "")); var controller = new NotifyController(db, new TestTweetHarborTwitterService(), m.Object); MvcMockHelpers.SetFakeControllerContext(controller); var res = controller.New(user.UserName, user.UniqueId, deserializedJsonObject); proj = user.Projects.FirstOrDefault(p => p.ProjectName == deserializedJsonObject.application.name); Assert.IsInstanceOfType(res, typeof(JsonResult)); Assert.IsInstanceOfType((res as JsonResult).Data, typeof(JsonResultModel)); Assert.AreNotEqual(0, proj.ProjectNotifications.Count()); Assert.AreEqual(0, proj.OutboundNotifications.Count()); Assert.AreEqual(true, ((res as JsonResult).Data as JsonResultModel).Success); }
public void TestSendSmsMessages_InboundNotificationCreated() { string testStr = "{\"application\": { \"name\": \"Test Project 1\" }, \"build\": { \"commit\": { \"id\": \"" + Guid.NewGuid() + "\", \"message\": \"Implement foo\" }, \"status\": \"succeeded\" } }"; var o = JsonConvert.DeserializeObject <Notification>(testStr); TestTweetHarborDbContext db = new TestTweetHarborDbContext(); var m = new Mock <ITweetHarborTextMessageService>(); m.Setup(a => a.SendText("", "")); var user = UserHelper.ArrangeNewUserDefault(); db.Users.Add(user); var proj = new Project() { ProjectName = o.application.name, SendPrivateTweetOnFailure = true, SendPrivateTweetOnSuccess = true, SendPublicTweetOnFailure = false, SendPublicTweetOnSuccess = true, SendTextOnSuccess = true, SendTextOnFailure = false, User = user }; user.Projects.Add(proj); db.Projects.Add(proj); var tmr = new TextMessageRecipient() { Name = "App Test", PhoneNumber = "5201235678", }; proj.TextMessageRecipients.Add(tmr); var controller = new NotifyController(db, new TestTweetHarborTwitterService(), m.Object); var res = controller.New(user.UserName, user.UniqueId, o); Assert.IsInstanceOfType(res, typeof(JsonResult)); Assert.IsInstanceOfType((res as JsonResult).Data, typeof(JsonResultModel)); Assert.AreEqual(true, ((res as JsonResult).Data as JsonResultModel).Success); Assert.AreNotEqual(0, proj.ProjectNotifications.Count); Assert.AreNotEqual(0, proj.ProjectNotifications.First().Build.commit.message.Length); }