public void TestEmailSendMailOrSystemMessage() { //Create the mocked inputcontext Mockery mock = new Mockery(); IInputContext context = DnaMockery.CreateDatabaseInputContext(); //XmlDocument siteconfig = new XmlDocument(); //siteconfig.LoadXml("<SITECONFIG />"); // Create a mocked site for the context ISite mockedSite = mock.NewMock<ISite>(); //Stub.On(mockedSite).GetProperty("SiteConfig").Will(Return.Value(siteconfig.FirstChild)); Stub.On(mockedSite).GetProperty("SiteID").Will(Return.Value(1)); Stub.On(mockedSite).GetProperty("SiteName").Will(Return.Value("h2g2")); Stub.On(mockedSite).GetProperty("ModClassID").Will(Return.Value(1)); Stub.On(context).GetProperty("CurrentSite").Will(Return.Value(mockedSite)); IUser mockedUser = mock.NewMock<IUser>(); Stub.On(mockedUser).GetProperty("UserID").Will(Return.Value(1090558354)); Stub.On(context).GetProperty("ViewingUser").Will(Return.Value(mockedUser)); Stub.On(context).Method("GetSiteRoot").Will(Return.Value("dnadev.national.core.bbc.co.uk:8081/dna/")); Stub.On(context).Method("SendMailOrSystemMessage"); MessageBoardStatistics mbStats = new MessageBoardStatistics(context); mbStats.SendMessageBoardStatsEmail((new DateTime(2008, 1, 1)), "*****@*****.**", "*****@*****.**" ); }
/// <summary> /// This function is where the page gets to create and insert all the objects required /// </summary> public override void OnPageLoad() { Context.Items["VirtualUrl"] = "MessageBoardStats"; string skin = Request.GetParamStringOrEmpty("skin", "skin"); if (!IsDnaUserAllowed()) { if (skin != "purexml") { ShowHideControls(false); lblError.Text = "Insufficient permissions - Editor Status Required"; } else { XmlDocument errorDoc = new XmlDocument(); errorDoc.LoadXml("<ERROR TYPE='invalidcredentials' ERRORMESSAGE = 'Must be an editor or superuser to view messageboard statistics' />"); //Replace an existing node if (_basePage.WholePageBaseXmlNode.SelectSingleNode("/MESSAGEBOARDSTATS") != null) { XmlNode messageBoardStatisticsNode = _basePage.WholePageBaseXmlNode.SelectSingleNode("/MESSAGEBOARDSTATS"); _basePage.WholePageBaseXmlNode.ReplaceChild(messageBoardStatisticsNode, _basePage.WholePageBaseXmlNode.OwnerDocument.ImportNode(errorDoc.FirstChild, true)); } else { _basePage.WholePageBaseXmlNode.FirstChild.AppendChild(_basePage.WholePageBaseXmlNode.OwnerDocument.ImportNode(errorDoc.FirstChild, true)); } } return; } if (!Page.IsPostBack) { DateTime enteredDate = DateTime.MinValue; try { if (Request.DoesParamExist("date", _docDnaDate)) { string entryDateText = Request.GetParamStringOrEmpty("date", _docDnaDate); DateRangeValidation dateValidation = new DateRangeValidation(); DateRangeValidation.ValidationResult isValid; DateTime tempDate; isValid = MessageBoardStatistics.ParseDate(entryDateText, out tempDate); if (isValid == DateRangeValidation.ValidationResult.VALID) { isValid = dateValidation.ValidateDate(tempDate, true); if (isValid == DateRangeValidation.ValidationResult.FUTURE_STARTDATE) { lblError.Text = "Passed in Date is in the future."; return; } else if (isValid != DateRangeValidation.ValidationResult.VALID) { lblError.Text = "Passed in Date not valid."; return; } enteredDate = tempDate; } else { lblError.Text = "Passed in Date not valid."; return; } } else { //Yesterday enteredDate = DateTime.Now.AddDays(-1).Date; } entryDate.SelectedDate = enteredDate.Date; entryDate.VisibleDate = enteredDate.Date; } catch (FormatException) { lblError.Text = "Passed in Date format incorrect. It should be dd/mm/yyyy"; return; } if (skin != "purexml") { GetMessageBoardStatistics(false); ShowHideControls(true); } else { GetMessageBoardStatistics(true); } string emailFrom = Request.GetParamStringOrEmpty("emailFrom", "emailFrom address"); string emailTo = Request.GetParamStringOrEmpty("emailTo", "emailTo address"); MessageBoardStatistics messageBoardStatistics = new MessageBoardStatistics(_basePage); messageBoardStatistics.SendMessageBoardStatsEmail(enteredDate, emailFrom, emailTo); } else { ShowHideResultControls(false); } }