public void VerifyForeignKeysExist_CodeExist_ReturnString() { // Arrange var blastId = 1; var blastGroupId = 1; var blastEngine = new ECNBlastEngine(); var exceptionMsg = "Code ID: "; ShimBlast.GetByBlastID_NoAccessCheckInt32Boolean = (id, child) => { var blast = new BlastRegular(); blast.BlastID = blastId; blast.GroupID = blastGroupId; blast.BlastType = BlastType.HTML.ToString(); blast.CodeID = 1; return(blast); }; ShimGroup.GetByGroupID_NoAccessCheckInt32 = (id) => { var group = new Group(); return(group); }; ShimDataFunctions.GetDataTableSqlCommand = (cmd) => { return(new DataTable()); }; // Act var actualResult = typeof(ECNBlastEngine).CallMethod(METHOD_VerifyForeignKey, new object[] { blastId }, blastEngine).ToString(); // Assert StringAssert.Contains(actualResult, exceptionMsg); }
public void HandleSingleBlast_OnECNException_LogError() { // Arrange var emailFn = new EmailFunctions(); var blastEngine = new ECNBlastEngine(); var exceptionLogged = false; ShimApplicationLog.LogCriticalErrorExceptionStringInt32StringInt32Int32 = (ex, sourceMethod, applicationID, note, gdCharityID, ecnCustomerID) => { exceptionLogged = true; return(1); }; ShimDataFunctions.GetDataTableString = (cmd) => { throw new CommonObjects::ECNException(new List <CommonObjects::ECNError>() { new CommonObjects::ECNError { ErrorMessage = "HandleSingleBlast", } }); }; ShimECNBlastEngine.AllInstances.SetBlastSingleToErrorInt32 = (eng, id) => { }; // Act typeof(ECNBlastEngine).CallMethod(METHOD_HandleSingleBlast, new object[] { emailFn }, blastEngine); // Assert Assert.IsTrue(exceptionLogged); }
public void VerifyForeignKeysExist_BlastGroupIsNull_ReturnString() { // Arrange var blastId = 1; var blastGroupId = 1; var blastEngine = new ECNBlastEngine(); var exceptionMsg = "Group ID: "; ShimBlast.GetByBlastID_NoAccessCheckInt32Boolean = (id, child) => { var blast = new BlastRegular(); blast.BlastID = blastId; blast.GroupID = blastGroupId; blast.BlastType = BlastType.HTML.ToString(); return(blast); }; ShimGroup.GetByGroupID_NoAccessCheckInt32 = (id) => { return(null); }; // Act var actualResult = typeof(ECNBlastEngine).CallMethod(METHOD_VerifyForeignKey, new object[] { blastId }, blastEngine).ToString(); // Assert StringAssert.Contains(actualResult, exceptionMsg); }
public void VerifyForeignKeysExist_IsChampionSampleIDExist_ReturnString() { // Arrange var blastId = 1; var blastGroupId = 1; var blastEngine = new ECNBlastEngine(); var exceptionMsg = "Blast ID:"; ShimBlast.GetByBlastID_NoAccessCheckInt32Boolean = (id, child) => { var blast = new BlastRegular(); blast.BlastID = blastId; blast.GroupID = blastGroupId; blast.BlastType = BlastType.Champion.ToString(); blast.LayoutID = 1; blast.SampleID = 1; return(blast); }; ShimGroup.GetByGroupID_NoAccessCheckInt32 = (id) => { var group = new Group(); return(group); }; ShimDataFunctions.GetDataTableSqlCommand = (cmd) => { return(new DataTable()); }; ShimLayout.GetByLayoutID_NoAccessCheckInt32Boolean = (id, child) => { var layout = new Layout(); layout.ContentSlot1 = 0; layout.TemplateID = 1; return(layout); }; ShimECNBlastEngine.AllInstances.ContentExistsInt32 = (eng, id) => { return("ContentExist"); }; ShimTemplate.GetByTemplateID_NoAccessCheckInt32 = (id) => { var template = new Template { TemplateSource = "TemplateSource", TemplateText = "TemplateText" }; return(template); }; ShimGroup.ValidateDynamicStringsForTemplateListOfStringInt32User = (list, groupId, user) => { }; // Act var actualResult = typeof(ECNBlastEngine).CallMethod(METHOD_VerifyForeignKey, new object[] { blastId }, blastEngine).ToString(); // Assert StringAssert.Contains(actualResult, exceptionMsg); }
public void CloneBlast_OnException_LogError() { // Arrange var exceptionLogged = false; var blastEngine = new ECNBlastEngine(); var blastId = 1; var blastGroupId = 1; var blast = new EntitiesCommunicator::BlastRegular(); blast.BlastID = blastId; blast.GroupID = blastGroupId; blast.BlastType = BlastType.HTML.ToString(); blast.CustomerID = 1; blast.CreatedUserID = 1; var setupInfo = new EntitiesCommunicator::BlastSetupInfo(); CommonFakes::ShimFileFunctions.LogConsoleActivityStringString = (str, output) => { }; ShimDataFunctions.GetDataTableString = (cmd) => { throw new Exception("Exception from SqlCommand"); }; ShimECNBlastEngine.AllInstances.SetBlastSingleToErrorInt32 = (eng, id) => { }; ShimBlast.GetByBlastID_NoAccessCheckInt32Boolean = (id, child) => { return(blast); }; BusinessLogicFakes::ShimUser.GetByUserIDInt32Boolean = (id, child) => { return(new User { UserID = 1 }); }; AccountsFakes::ShimCustomer.GetByCustomerIDInt32Boolean = (id, child) => { throw new CommonObjects::SecurityException("SecurityExceptionMessage"); }; ShimECNBlastEngine.AllInstances.SendAccountManagersEmailNotificationStringString = (eng, msg, exc) => { exceptionLogged = true; }; // Act typeof(ECNBlastEngine).CallMethod(METHOD_CloneBlast, new object[] { blastId, setupInfo }, blastEngine); // Assert Assert.IsTrue(exceptionLogged); }
public void VerifyForeignKeysExist_OnException_ReturnEmptyString() { // Arrange var blastId = 1; var blastEngine = new ECNBlastEngine(); var exceptionMsg = "Exception while checking key data"; // Act var actualResult = typeof(ECNBlastEngine).CallMethod(METHOD_VerifyForeignKey, new object[] { blastId }, blastEngine).ToString(); // Assert Assert.AreEqual(exceptionMsg, actualResult); }
public void HandleSingleBlast_RefBlastIsNull_LogError() { // Arrange var emailFn = new EmailFunctions(); var blastEngine = new ECNBlastEngine(); var blastUpdated = false; ShimApplicationLog.LogCriticalErrorExceptionStringInt32StringInt32Int32 = (ex, sourceMethod, applicationID, note, gdCharityID, ecnCustomerID) => { return(1); }; ShimDataFunctions.GetDataTableString = (cmd) => { var table = new DataTable(); table.Columns.Add("EmailID", typeof(int)); table.Columns.Add("BlastID", typeof(int)); table.Columns.Add("LayoutPlanID", typeof(int)); table.Columns.Add("BlastSingleID", typeof(int)); table.Columns.Add("GroupID", typeof(int)); table.Columns.Add("refBlastID", typeof(int)); var row = table.NewRow(); row[0] = 1; row[1] = 2; row[2] = 3; row[3] = 4; row[4] = 5; row[5] = DBNull.Value; table.Rows.Add(row); return(table); }; ShimECNBlastEngine.AllInstances.SetBlastSingleToErrorInt32 = (eng, id) => { }; ShimDataFunctions.ExecuteString = (str) => { blastUpdated = true; return(1); }; ShimDataFunctions.ExecuteScalarString = (str) => { return("2"); }; // Act typeof(ECNBlastEngine).CallMethod(METHOD_HandleSingleBlast, new object[] { emailFn }, blastEngine); // Assert Assert.IsTrue(blastUpdated); }
public void VerifyForeignKeysExist_NotChampionLayoutExistContentSlot9Exists_ReturnString() { // Arrange var blastId = 1; var blastGroupId = 1; var blastEngine = new ECNBlastEngine(); var exceptionMsg = "ContentExist"; ShimBlast.GetByBlastID_NoAccessCheckInt32Boolean = (id, child) => { var blast = new BlastRegular(); blast.BlastID = blastId; blast.GroupID = blastGroupId; blast.BlastType = BlastType.HTML.ToString(); blast.LayoutID = 1; return(blast); }; ShimGroup.GetByGroupID_NoAccessCheckInt32 = (id) => { var group = new Group(); return(group); }; ShimDataFunctions.GetDataTableSqlCommand = (cmd) => { return(new DataTable()); }; ShimLayout.GetByLayoutID_NoAccessCheckInt32Boolean = (id, child) => { var layout = new Layout(); layout.ContentSlot1 = 0; layout.ContentSlot9 = 1; return(layout); }; ShimECNBlastEngine.AllInstances.ContentExistsInt32 = (eng, id) => { if (id == 1) { return("ContentExist"); } return(""); }; // Act var actualResult = typeof(ECNBlastEngine).CallMethod(METHOD_VerifyForeignKey, new object[] { blastId }, blastEngine).ToString(); // Assert StringAssert.Contains(actualResult, exceptionMsg); }
public void SetUp() { _shimObject = ShimsContext.Create(); appSettings.Clear(); appSettings.Add("DoBlast", doBlast); appSettings.Add("EngineID", engineID); appSettings.Add("StatusCode", statusCode); appSettings.Add("AdminSendFrom", FromEmailAddress); appSettings.Add("AcctManagersSendTo", ToEmailAddress); appSettings.Add("SMTPServer", SamppleSmtpServer); appSettings.Add("ECNEngineAccessKey", ecnEngineAccessKey); appSettings.Add("Communicator_VirtualPath", SamplePath); ShimConfigurationManager.AppSettingsGet = () => appSettings; _testEntity = new ECNBlastEngine(); _privateECNBlastEngineObj = new PrivateObject(_testEntity); _privateTypeECNBlastEngine = new PrivateType(typeof(ECNBlastEngine)); }
public void CloneBlast_CampaignItemExist_ReachEnd() { // Arrange var exceptionLogged = false; var reachedEnd = false; var blastEngine = new ECNBlastEngine(); var blastId = 1; var blastGroupId = 1; appSettings.Add("LogStatistics", bool.TrueString); var blast = new EntitiesCommunicator::BlastRegular(); blast.BlastID = blastId; blast.GroupID = blastGroupId; blast.BlastType = BlastType.HTML.ToString(); blast.CustomerID = 1; blast.CreatedUserID = 1; var setupInfo = new EntitiesCommunicator::BlastSetupInfo(); CommonFakes::ShimFileFunctions.LogConsoleActivityStringString = (str, output) => { }; ShimDataFunctions.GetDataTableString = (cmd) => { throw new Exception("Exception from SqlCommand"); }; ShimECNBlastEngine.AllInstances.SetBlastSingleToErrorInt32 = (eng, id) => { }; ShimBlast.GetByBlastID_NoAccessCheckInt32Boolean = (id, child) => { return(blast); }; BusinessLogicFakes::ShimUser.GetByUserIDInt32Boolean = (id, child) => { return(new User { UserID = 1 }); }; AccountsFakes::ShimCustomer.GetByCustomerIDInt32Boolean = (id, child) => { return(new AccountsEntity::Customer { BaseChannelID = 1, PlatformClientID = 1 }); }; BusinessLayerAccountsFakes::ShimBaseChannel.GetByBaseChannelIDInt32 = (id) => { return(new AccountsEntity::BaseChannel { PlatformClientGroupID = 1 }); }; ShimECNBlastEngine.AllInstances.SendAccountManagersEmailNotificationStringString = (eng, msg, exc) => { exceptionLogged = true; }; BusinessLogicFakes::ShimClient.AllInstances.SelectInt32Boolean = (obj, id, include) => { return(new Client { ClientID = 1 }); }; BusinessLogicFakes::ShimClientGroup.AllInstances.SelectInt32Boolean = (obj, id, include) => { return(new ClientGroup()); }; BusinessLogicFakes::ShimSecurityGroup.AllInstances.SelectInt32Int32BooleanBoolean = (obj, uid, cid, isKm, include) => { return(new SecurityGroup()); }; ShimCampaignItem.GetByBlastID_NoAccessCheckInt32Boolean = (id, child) => { return(new EntitiesCommunicator::CampaignItem { CampaignID = 1, CampaignItemID = 1, CampaignItemType = CampaignItemType.Regular.ToString(), SendTime = new DateTime(2018, 1, 1), CampaignItemName = "TestCampaignItemName", CampaignItemIDOriginal = 1, CampaignItemNameOriginal = "TestCampaignItemNameOriginal", BlastList = new List <EntitiesCommunicator::CampaignItemBlast> { new EntitiesCommunicator::CampaignItemBlast { BlastID = blastId } }, SuppressionList = new List <EntitiesCommunicator::CampaignItemSuppression>() }); }; ShimCampaignItem.Save_NoAccessCheckCampaignItemUser = (item, user) => 1; ShimCampaignItemBlast.Save_NoAccessCheckCampaignItemBlastUser = (item, user) => 1; ShimBlast.CreateBlastsFromCampaignItem_NoAccessCheckInt32UserBoolean = (id, user, child) => { }; ShimBlast.GetByCampaignItemBlastID_NoAccessCheckInt32Boolean = (id, child) => { reachedEnd = true; return(null); }; // Act typeof(ECNBlastEngine).CallMethod(METHOD_CloneBlast, new object[] { blastId, setupInfo }, blastEngine); // Assert Assert.IsFalse(exceptionLogged); Assert.IsTrue(reachedEnd); }
public void VerifyForeignKeysExist_IsChampionSampleIDExistLayoutExistWithException_ReturnString() { // Arrange var blastId = 1; var blastGroupId = 1; var blastEngine = new ECNBlastEngine(); var exceptionMsg = "UDF(s): "; ShimBlast.GetByBlastID_NoAccessCheckInt32Boolean = (id, child) => { var blast = new BlastRegular(); blast.BlastID = blastId; blast.GroupID = blastGroupId; blast.BlastType = BlastType.Champion.ToString(); blast.LayoutID = 1; blast.SampleID = 1; return(blast); }; ShimGroup.GetByGroupID_NoAccessCheckInt32 = (id) => { var group = new Group(); return(group); }; ShimDataFunctions.GetDataTableSqlCommand = (cmd) => { var table = new DataTable(); table.Columns.Add("LayoutID", typeof(string)); var row = table.NewRow(); row[0] = "1"; table.Rows.Add(row); var row2 = table.NewRow(); row2[0] = "1"; table.Rows.Add(row2); return(table); }; ShimLayout.GetByLayoutID_NoAccessCheckInt32Boolean = (id, child) => { var layout = new Layout(); layout.ContentSlot1 = 0; layout.TemplateID = 1; return(layout); }; ShimECNBlastEngine.AllInstances.ContentExistsInt32 = (eng, id) => { return("ContentExist"); }; ShimTemplate.GetByTemplateID_NoAccessCheckInt32 = (id) => { var template = new Template { TemplateSource = "TemplateSource", TemplateText = "TemplateText" }; return(template); }; ShimGroup.ValidateDynamicStringsForTemplateListOfStringInt32User = (list, groupId, user) => { throw new ECNException(new List <ECNError>() { new ECNError { ErrorMessage = "Exception from Template subject line. error text", } }); }; // Act var actualResult = typeof(ECNBlastEngine).CallMethod(METHOD_VerifyForeignKey, new object[] { blastId }, blastEngine).ToString(); // Assert StringAssert.Contains(actualResult, exceptionMsg); }
public void HandleSingleBlast_RefBlastNotNullOpensCountIsZero_ReachEnd() { // Arrange var emailFn = new EmailFunctions(); var blastEngine = new ECNBlastEngine(); var exceptionLogged = false; var blastId = 1; var blastGroupId = 1; appSettings.Add("LogStatistics", bool.TrueString); appSettings.Add("Communicator_VirtualPath", "TestString"); var blast = new BlastRegular(); blast.BlastID = blastId; blast.GroupID = blastGroupId; blast.BlastType = BlastType.HTML.ToString(); blast.CustomerID = 1; var reachedEnd = false; ShimApplicationLog.LogCriticalErrorExceptionStringInt32StringInt32Int32 = (ex, sourceMethod, applicationID, note, gdCharityID, ecnCustomerID) => { return(1); }; CommonFakes::ShimFileFunctions.LogActivityBooleanStringString = (output, activity, suffix) => { }; ShimDataFunctions.GetDataTableString = (cmd) => { var table = new DataTable(); table.Columns.Add("EmailID", typeof(int)); table.Columns.Add("BlastID", typeof(int)); table.Columns.Add("LayoutPlanID", typeof(int)); table.Columns.Add("BlastSingleID", typeof(int)); table.Columns.Add("GroupID", typeof(int)); table.Columns.Add("refBlastID", typeof(int)); var row = table.NewRow(); row[0] = 1; row[1] = 2; row[2] = 3; row[3] = 4; row[4] = 5; row[5] = 6; table.Rows.Add(row); return(table); }; ShimECNBlastEngine.AllInstances.SetBlastSingleToErrorInt32 = (eng, id) => { }; ShimDataFunctions.ExecuteString = (str) => { return(1); }; ShimDataFunctions.ExecuteScalarString = (str) => { if (str.Contains("SELECT COUNT(EmailID) AS 'OpensCount'")) { if (str.Contains("AND ActionTypeCode = 'open'")) { reachedEnd = true; } return("0"); } return("1"); }; ShimDataFunctions.ExecuteScalarStringString = (str, cmd) => { return("1"); }; ShimBlast.GetByBlastID_NoAccessCheckInt32Boolean = (id, child) => { return(blast); }; ShimChannelCheck.AllInstances.getHostName = (ch) => "TestHostName"; ShimChannelCheck.AllInstances.getBounceDomain = (ch) => "TestDomain"; ShimChannelCheck.ConstructorInt32 = (chn, custId) => { }; ShimBlast.GetMasterRefBlastInt32Int32UserBoolean = (id, emailId, user, child) => { return(blast); }; ShimEmailFunctions.AllInstances.SendBlastSingleBlastInt32Int32StringStringString = (fn, obj, email, group, setting, hostname, domain) => { }; // Act typeof(ECNBlastEngine).CallMethod(METHOD_HandleSingleBlast, new object[] { emailFn }, blastEngine); // Assert Assert.IsFalse(exceptionLogged); Assert.IsTrue(reachedEnd); }