public void RatingCreate_ProcessPreMod_ReturnCorrectError() { string siteName = "h2g2"; int siteId = 1; string uid = "uid"; string text = "test comment"; var siteList = mocks.DynamicMock<ISiteList>(); var readerCreator = mocks.DynamicMock<IDnaDataReaderCreator>(); var site = mocks.DynamicMock<ISite>(); var reader = mocks.DynamicMock<IDnaDataReader>(); var cacheManager = mocks.DynamicMock<ICacheManager>(); var callingUser = mocks.DynamicMock<ICallingUser>(); var ratingForum = new RatingForum { Id = uid, SiteName = siteName, ModerationServiceGroup= ModerationStatus.ForumStatus.PreMod }; var ratingInfo = new RatingInfo { text = text, rating = 0 }; callingUser.Stub(x => x.IsSecureRequest).Return(true); callingUser.Stub(x => x.UserID).Return(1); callingUser.Stub(x => x.IsUserA(UserTypes.SuperUser)).Return(false).Constraints(Is.Anything()); cacheManager.Stub(x => x.GetData("")).Return(null).Constraints(Is.Anything()); site.Stub(x => x.SiteID).Return(siteId); site.Stub(x => x.IsEmergencyClosed).Return(false); site.Stub(x => x.IsSiteScheduledClosed(DateTime.Now)).Return(false); reader.Stub(x => x.HasRows).Return(true); reader.Stub(x => x.Read()).Return(true).Repeat.Once(); readerCreator.Stub(x => x.CreateDnaDataReader("ratingscreate")).Return(reader); var readerUserRating = mocks.DynamicMock<IDnaDataReader>(); readerUserRating.Stub(x => x.HasRows).Return(false); readerUserRating.Stub(x => x.Read()).Return(false); readerCreator.Stub(x => x.CreateDnaDataReader("ratingsreadbyforumanduser")).Return(readerUserRating); siteList.Stub(x => x.GetSiteOptionValueBool(siteId, "Moderation", "ProcessPreMod")).Return(true); siteList.Stub(x => x.GetSite(siteName)).Return(site); mocks.ReplayAll(); var reviews = new Reviews(null, readerCreator, cacheManager, siteList); reviews.CallingUser = callingUser; try { reviews.RatingCreate(ratingForum, ratingInfo); throw new Exception("No exception thrown"); } catch (ApiException ex) { Assert.AreEqual(ErrorType.InvalidProcessPreModState, ex.type); } readerCreator.AssertWasNotCalled(x => x.CreateDnaDataReader("ratingscreate")); }
public void RatingCreate_NotSecureWithOption_ReturnCorrectError() { string siteName = "h2g2"; string uid = "uid"; var text = "Here is my rating that is not posted securely"; var siteList = mocks.DynamicMock<ISiteList>(); var readerCreator = mocks.DynamicMock<IDnaDataReaderCreator>(); var site = mocks.DynamicMock<ISite>(); var reader = mocks.DynamicMock<IDnaDataReader>(); var cacheManager = mocks.DynamicMock<ICacheManager>(); var callingUser = mocks.DynamicMock<ICallingUser>(); var ratingForum = new RatingForum { Id = uid, SiteName = siteName }; var ratingInfo = new RatingInfo { text = text, rating = 0 }; callingUser.Stub(x => x.UserID).Return(1); callingUser.Stub(x => x.IsUserA(UserTypes.SuperUser)).Return(false).Constraints(Is.Anything()); cacheManager.Stub(x => x.GetData("")).Return(null).Constraints(Is.Anything()); site.Stub(x => x.IsEmergencyClosed).Return(false); site.Stub(x => x.IsSiteScheduledClosed(DateTime.Now)).Return(false); reader.Stub(x => x.HasRows).Return(true); reader.Stub(x => x.Read()).Return(true).Repeat.Once(); readerCreator.Stub(x => x.CreateDnaDataReader("ratingscreate")).Return(reader); var readerUserRating = mocks.DynamicMock<IDnaDataReader>(); readerUserRating.Stub(x => x.HasRows).Return(false); readerUserRating.Stub(x => x.Read()).Return(false); readerCreator.Stub(x => x.CreateDnaDataReader("ratingsreadbyforumanduser")).Return(readerUserRating); siteList.Stub(x => x.GetSite(siteName)).Return(site); siteList.Stub(x => x.GetSiteOptionValueInt(0, "CommentForum", "EnforceSecurePosting")).Return(1); mocks.ReplayAll(); var reviews = new Reviews(null, readerCreator, cacheManager, siteList); reviews.CallingUser = callingUser; try { reviews.RatingCreate(ratingForum, ratingInfo); throw new Exception("No exception thrown"); } catch (ApiException ex) { Assert.AreEqual(ErrorType.NotSecure, ex.type); } readerCreator.AssertWasNotCalled(x => x.CreateDnaDataReader("ratingscreate")); }
public void RatingCreate_AsPreMod_ReturnCorrectError() { string siteName = "h2g2"; int siteId = 1; string uid = "uid"; string text = "test text"; var siteList = mocks.DynamicMock<ISiteList>(); var readerCreator = mocks.DynamicMock<IDnaDataReaderCreator>(); var site = mocks.DynamicMock<ISite>(); var reader = mocks.DynamicMock<IDnaDataReader>(); var cacheManager = mocks.DynamicMock<ICacheManager>(); var callingUser = mocks.DynamicMock<ICallingUser>(); var ratingForum = new RatingForum { Id = uid, SiteName = siteName, ModerationServiceGroup = ModerationStatus.ForumStatus.PreMod }; var ratingInfo = new RatingInfo {text = text, rating = 0}; callingUser.Stub(x => x.IsSecureRequest).Return(true); callingUser.Stub(x => x.UserID).Return(1); callingUser.Stub(x => x.IsUserA(UserTypes.SuperUser)).Return(false).Constraints(Is.Anything()); cacheManager.Stub(x => x.GetData("")).Return(null).Constraints(Is.Anything()); site.Stub(x => x.SiteID).Return(siteId); site.Stub(x => x.IsEmergencyClosed).Return(false); site.Stub(x => x.IsSiteScheduledClosed(DateTime.Now)).Return(false); reader.Stub(x => x.HasRows).Return(true); reader.Stub(x => x.Read()).Return(true).Repeat.Once(); readerCreator.Stub(x => x.CreateDnaDataReader("ratingscreate")).Return(reader); readerCreator.Stub(x => x.CreateDnaDataReader("commentcreate")).Return(reader); var readerUserRating = mocks.DynamicMock<IDnaDataReader>(); readerUserRating.Stub(x => x.HasRows).Return(false); readerUserRating.Stub(x => x.Read()).Return(false); readerCreator.Stub(x => x.CreateDnaDataReader("ratingsreadbyforumanduser")).Return(readerUserRating); siteList.Stub(x => x.GetSite(siteName)).Return(site); mocks.ReplayAll(); var reviews = new Reviews(null, readerCreator, cacheManager, siteList); reviews.CallingUser = callingUser; RatingInfo comment = reviews.RatingCreate(ratingForum, ratingInfo); Assert.IsNotNull(comment); readerCreator.AssertWasCalled(x => x.CreateDnaDataReader("commentcreate")); }
public void RatingCreate_ValidInput_ReturnCorrectObject() { string siteName = "h2g2"; string uid = "uid"; string text = "test comment"; var siteList = mocks.DynamicMock<ISiteList>(); var readerCreator = mocks.DynamicMock<IDnaDataReaderCreator>(); var site = mocks.DynamicMock<ISite>(); var reader = mocks.DynamicMock<IDnaDataReader>(); var cacheManager = mocks.DynamicMock<ICacheManager>(); var callingUser = mocks.DynamicMock<ICallingUser>(); var ratingForum = new RatingForum {Id = uid, SiteName = siteName}; var ratingInfo = new RatingInfo {text = text, rating = 0}; callingUser.Stub(x => x.IsSecureRequest).Return(true); callingUser.Stub(x => x.UserID).Return(1); callingUser.Stub(x => x.IsUserA(UserTypes.SuperUser)).Return(false).Constraints(Is.Anything()); cacheManager.Stub(x => x.GetData("")).Return(null).Constraints(Is.Anything()); site.Stub(x => x.IsEmergencyClosed).Return(false); site.Stub(x => x.IsSiteScheduledClosed(DateTime.Now)).Return(false); reader.Stub(x => x.HasRows).Return(true); reader.Stub(x => x.Read()).Return(true); reader.Stub(x => x.GetInt32NullAsZero("postid")).Return(1); readerCreator.Stub(x => x.CreateDnaDataReader("ratingscreate")).Return(reader); readerCreator.Stub(x => x.CreateDnaDataReader("commentcreate")).Return(reader); var readerUserRating = mocks.DynamicMock<IDnaDataReader>(); readerUserRating.Stub(x => x.HasRows).Return(false); readerUserRating.Stub(x => x.Read()).Return(false); readerCreator.Stub(x => x.CreateDnaDataReader("ratingsreadbyforumanduser")).Return(readerUserRating); site.Stub(x => x.SiteID).Return(1); siteList.Stub(x => x.GetSiteOptionValueString(1, "General", "ComplaintUrl")).Return("http://www.bbc.co.uk/dna/[sitename]/comments/UserComplaintPage?PostID=[postid]&s_start=1"); siteList.Stub(x => x.GetSite(siteName)).Return(site); mocks.ReplayAll(); var reviews = new Reviews(null, readerCreator, cacheManager, siteList); reviews.CallingUser = callingUser; RatingInfo comment = reviews.RatingCreate(ratingForum, ratingInfo); Assert.IsNotNull(comment); readerCreator.AssertWasCalled(x => x.CreateDnaDataReader("commentcreate")); }
public void RatingsForumReadByUid_CacheValid_ReturnsValidList() { DateTime lastUpdate = DateTime.Now.AddDays(1); string uid = "testUid"; var validForum = new RatingForum() {Id = uid}; var reviews = new Reviews(null, null, null, null); var siteList = mocks.DynamicMock<ISiteList>(); var readerCreator = mocks.DynamicMock<IDnaDataReaderCreator>(); var site = mocks.DynamicMock<ISite>(); var reader = mocks.DynamicMock<IDnaDataReader>(); var readerComments = mocks.DynamicMock<IDnaDataReader>(); var readerLastUpdate = mocks.DynamicMock<IDnaDataReader>(); var cacheManager = mocks.DynamicMock<ICacheManager>(); string siteName = "h2g2"; string cacheKey = reviews.RatingForumCacheKey(uid, 0); cacheManager.Stub(x => x.GetData(cacheKey + "|LASTUPDATED")).Return(lastUpdate); cacheManager.Stub(x => x.GetData(cacheKey)).Return(validForum); site.Stub(x => x.ModerationStatus).Return(ModerationStatus.SiteStatus.UnMod); site.Stub(x => x.IsEmergencyClosed).Return(false); site.Stub(x => x.IsSiteScheduledClosed(DateTime.Now)).Return(false); reader.Stub(x => x.HasRows).Return(true); reader.Stub(x => x.Read()).Return(true).Repeat.Once(); reader.Stub(x => x.GetStringNullAsEmpty("sitename")).Return(siteName); readerComments.Stub(x => x.HasRows).Return(true); readerComments.Stub(x => x.Read()).Return(true).Repeat.Once(); readerComments.Stub(x => x.GetInt32NullAsZero("totalresults")).Return(1); readerLastUpdate.Stub(x => x.HasRows).Return(true); readerLastUpdate.Stub(x => x.Read()).Return(true).Repeat.Once(); readerLastUpdate.Stub(x => x.GetDateTime("lastupdated")).Return(lastUpdate); readerCreator.Stub(x => x.CreateDnaDataReader("RatingForumreadbyuid")).Return(reader); readerCreator.Stub(x => x.CreateDnaDataReader("ratingsreadbyforumid")).Return(readerComments); readerCreator.Stub(x => x.CreateDnaDataReader("CommentforumGetLastUpdate")).Return(readerLastUpdate); siteList.Stub(x => x.GetSite(siteName)).Return(site); mocks.ReplayAll(); reviews = new Reviews(null, readerCreator, cacheManager, siteList); RatingForum forum = reviews.RatingForumReadByUID(uid, site); Assert.IsNotNull(forum); Assert.AreEqual(uid, forum.Id); readerCreator.AssertWasNotCalled(x => x.CreateDnaDataReader("RatingForumreadbyuid")); readerCreator.AssertWasNotCalled(x => x.CreateDnaDataReader("ratingsreadbyforumid")); }
public void RatingCreate_UserAlreadyRated_ReturnCorrectError() { string siteName = "h2g2"; int siteId = 1; string uid = "uid"; string text = "test comment"; var siteList = mocks.DynamicMock<ISiteList>(); var readerCreator = mocks.DynamicMock<IDnaDataReaderCreator>(); var site = mocks.DynamicMock<ISite>(); var reader = mocks.DynamicMock<IDnaDataReader>(); var cacheManager = mocks.DynamicMock<ICacheManager>(); var callingUser = mocks.DynamicMock<ICallingUser>(); var ratingForum = new RatingForum { Id = uid, SiteName = siteName }; var ratingInfo = new RatingInfo { text = text, rating = 0 }; callingUser.Stub(x => x.IsSecureRequest).Return(true); callingUser.Stub(x => x.UserID).Return(1); callingUser.Stub(x => x.IsUserA(UserTypes.SuperUser)).Return(false).Constraints(Is.Anything()); cacheManager.Stub(x => x.GetData("")).Return(null).Constraints(Is.Anything()); site.Stub(x => x.SiteID).Return(siteId); site.Stub(x => x.IsEmergencyClosed).Return(false); site.Stub(x => x.IsSiteScheduledClosed(DateTime.Now)).Return(false); reader.Stub(x => x.HasRows).Return(true); reader.Stub(x => x.Read()).Return(true).Repeat.Once(); readerCreator.Stub(x => x.CreateDnaDataReader("ratingscreate")).Return(reader); var readerUserRating = mocks.DynamicMock<IDnaDataReader>(); readerUserRating.Stub(x => x.HasRows).Return(true); readerUserRating.Stub(x => x.Read()).Return(true); readerCreator.Stub(x => x.CreateDnaDataReader("ratingsreadbyforumanduser")).Return(readerUserRating); site.Stub(x => x.SiteID).Return(1); siteList.Stub(x => x.GetSiteOptionValueString(1, "General", "ComplaintUrl")).Return("http://www.bbc.co.uk/dna/[sitename]/comments/UserComplaintPage?PostID=[postid]&s_start=1"); siteList.Stub(x => x.GetSite(siteName)).Return(site); mocks.ReplayAll(); var reviews = new Reviews(null, readerCreator, cacheManager, siteList); reviews.CallingUser = callingUser; try { reviews.RatingCreate(ratingForum, ratingInfo); throw new Exception("No exception thrown"); } catch (ApiException ex) { Assert.AreEqual(ErrorType.MultipleRatingByUser, ex.type); } readerCreator.AssertWasNotCalled(x => x.CreateDnaDataReader("ratingscreate")); }