Advertisement
Guest User

Untitled

a guest
Mar 9th, 2017
238
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 31.42 KB | None | 0 0
  1. using NUnit.Framework;
  2. using PP.Core.Extension;
  3. using PP.Core.Helper;
  4. using PP.Core.Models;
  5. using SPE.BatchProcess.Tests.Integration.Utilities;
  6. using SPE.Data;
  7. using SPE_Model.Batch;
  8. using SPE_Model.Models;
  9. using SPE_Model.TFSO;
  10. using SPS_Test_System.StepDefinitions.Helpers;
  11. using System;
  12. using System.Collections.Generic;
  13. using System.Data.Entity.Migrations;
  14. using System.Linq;
  15. using System.Net.Mail;
  16. using System.Text;
  17. using System.Threading.Tasks;
  18. using NSubstitute;
  19. using PP.Core.MailService;
  20. using SPE.BatchProcess.Batches;
  21. using SPE.Services.MailService;
  22. using SPE.Services.WelcomeBatch;
  23.  
  24. namespace SPE.BatchProcess.Tests.Integration.Batches.WelcomeBatchTest
  25. {
  26.     public class CreateWelcomeBatchTest : IntegrationBaseTest
  27.     {
  28.         private BatchMaster _welcomeBatch;
  29.  
  30.  
  31.         [SetUp]
  32.         public void SetupTestCompany()
  33.         {
  34.             SeedHelper.SeedDefaultCompany1AndEmployee();
  35.             SeedHelper.SeedDefaultCompany2AndEmployee();
  36.             UpdateSeedingCompany();
  37.            
  38.            
  39.         }
  40.  
  41.         #region MainFlow
  42.  
  43.  
  44.         [Test]
  45.         public void Create_BatchFilterFor1CompanyAndProcessComplete_ReturnCompanyAndBatchSuccess()
  46.         {
  47.             // Arrange
  48.             UpdateCompany1ImportStatus(StateConst.Completed);
  49.             InsertWelcomBatchWithFilterForCompany1();
  50.             UpdateCompany1WithCorrectDataInWelcomeBatch();
  51.  
  52.             // Act
  53.             this.AutoSubstitute.Resolve<SPE.BatchProcess.Batches.WelcomeBatch>().Start(_welcomeBatch);
  54.  
  55.             // Assert
  56.             _welcomeBatch = this.DataContext.BatchMasters.Find(_welcomeBatch.BatchId);
  57.             string expectBatchStatusStr = ValidationHelper.compareBatchStatus.FormatWith(
  58.                 CommandConst.Create,
  59.                 StateConst.Draft
  60.             );
  61.             string actualBatchStatusStr = ValidationHelper.compareBatchStatus.FormatWith(
  62.                 _welcomeBatch.Command,
  63.                 _welcomeBatch.State
  64.             );
  65.             Assert.AreEqual(expectBatchStatusStr, actualBatchStatusStr);
  66.  
  67.             var companyWelcomeBatch = this.DataContext.CompanyWelcomeBatch.FirstOrDefault();
  68.             Assert.AreEqual("System Test Company 1", companyWelcomeBatch.Company.Name);
  69.             Assert.AreEqual((int) CompanyWelcomeBatchStatus.Success, companyWelcomeBatch.Status);
  70.             AssertCompany1AddedToBatchStatus();
  71.         }
  72.  
  73.         [Test]
  74.         public void Create_BatchFilterFor1CompanyAndProcessFailed_ReturnCompanyAndBatchFailed()
  75.         {
  76.             // Arrange
  77.             UpdateCompany1ImportStatus(StateConst.Completed);
  78.             InsertWelcomBatchWithFilterForCompany1();
  79.             UpdateCompany1Id24ToInvalid();
  80.  
  81.             // Act
  82.             this.AutoSubstitute.Resolve<SPE.BatchProcess.Batches.WelcomeBatch>().Start(_welcomeBatch);
  83.  
  84.             // Assert
  85.             _welcomeBatch = this.DataContext.BatchMasters.Find(_welcomeBatch.BatchId);
  86.             string expectBatchStatusStr = ValidationHelper.compareBatchStatus.FormatWith(
  87.                 CommandConst.Create,
  88.                 StateConst.Failed
  89.             );
  90.             string actualBatchStatusStr = ValidationHelper.compareBatchStatus.FormatWith(
  91.                 _welcomeBatch.Command,
  92.                 _welcomeBatch.State
  93.             );
  94.             Assert.AreEqual(expectBatchStatusStr, actualBatchStatusStr);
  95.  
  96.             var companyWelcomeBatch = this.DataContext.CompanyWelcomeBatch.FirstOrDefault();
  97.             Assert.AreEqual("System Test Company 1", companyWelcomeBatch.Company.Name);
  98.             Assert.AreEqual((int) CompanyWelcomeBatchStatus.Failed, companyWelcomeBatch.Status);
  99.             AssertCompany1AddedToBatchStatus();
  100.         }
  101.  
  102.         [Test]
  103.         public void Create_BatchFilterFor1CompanyAndStatusIsAddedToBatch_ReturnBatchSuccess()
  104.         {
  105.             // Arrange
  106.             UpdateCompany1ImportStatus(StateConst.AddedToWelcomeBatch);
  107.             InsertWelcomBatchWithFilterForCompany1();
  108.  
  109.             // Act
  110.             this.AutoSubstitute.Resolve<SPE.BatchProcess.Batches.WelcomeBatch>().Start(_welcomeBatch);
  111.  
  112.             // Assert
  113.             _welcomeBatch = this.DataContext.BatchMasters.Find(_welcomeBatch.BatchId);
  114.             string expectBatchStatusStr = ValidationHelper.compareBatchStatus.FormatWith(
  115.                 CommandConst.Create,
  116.                 StateConst.Draft
  117.             );
  118.             string actualBatchStatusStr = ValidationHelper.compareBatchStatus.FormatWith(
  119.                 _welcomeBatch.Command,
  120.                 _welcomeBatch.State
  121.             );
  122.             Assert.AreEqual(expectBatchStatusStr, actualBatchStatusStr);
  123.  
  124.             var companyWelcomeBatch = this.DataContext.CompanyWelcomeBatch.FirstOrDefault();
  125.             Assert.IsNull(companyWelcomeBatch);
  126.         }
  127.  
  128.         [Test]
  129.         public void Create_BatchFilterForAllCompanyAnd2CompanyHasCompleteStatus_ReturnBatchAndCompanySuccess()
  130.         {
  131.             // Arrange
  132.             UpdateCompany1ImportStatus(StateConst.Completed);
  133.             UpdateCompany2ImportStatus(StateConst.AddedToWelcomeBatch);
  134.             UpdateCompany1WithCorrectDataInWelcomeBatch();
  135.  
  136.             InsertWelcomBatchWithFilterEmpty();
  137.  
  138.             // Act
  139.             this.AutoSubstitute.Resolve<SPE.BatchProcess.Batches.WelcomeBatch>().Start(_welcomeBatch);
  140.  
  141.             // Assert
  142.             _welcomeBatch = this.DataContext.BatchMasters.Find(_welcomeBatch.BatchId);
  143.             string expectBatchStatusStr = ValidationHelper.compareBatchStatus.FormatWith(
  144.                 CommandConst.Create,
  145.                 StateConst.Draft
  146.             );
  147.             string actualBatchStatusStr = ValidationHelper.compareBatchStatus.FormatWith(
  148.                 _welcomeBatch.Command,
  149.                 _welcomeBatch.State
  150.             );
  151.             Assert.AreEqual(expectBatchStatusStr, actualBatchStatusStr);
  152.  
  153.             var companyWelcomeBatch = this.DataContext.CompanyWelcomeBatch.FirstOrDefault();
  154.             Assert.AreEqual("System Test Company 1", companyWelcomeBatch.Company.Name);
  155.             Assert.AreEqual((int) CompanyWelcomeBatchStatus.Success, companyWelcomeBatch.Status);
  156.             AssertCompany2AddedToBatchStatus();
  157.         }
  158.  
  159.         [Test]
  160.         public void Create_BatchFilterForAllCompanyAnd1CompanyHasProcessFailed_ReturnBatchAndCompanyFailed()
  161.         {
  162.             // Arrange
  163.             UpdateCompany1ImportStatus(StateConst.AddedToWelcomeBatch);
  164.             UpdateCompany2ImportStatus(StateConst.Completed);
  165.             UpdateCompany2Id24ToInvalid();
  166.  
  167.             InsertWelcomBatchWithFilterEmpty();
  168.  
  169.             // Act
  170.             this.AutoSubstitute.Resolve<SPE.BatchProcess.Batches.WelcomeBatch>().Start(_welcomeBatch);
  171.  
  172.             // Assert
  173.             _welcomeBatch = this.DataContext.BatchMasters.Find(_welcomeBatch.BatchId);
  174.             string expectBatchStatusStr = ValidationHelper.compareBatchStatus.FormatWith(
  175.                 CommandConst.Create,
  176.                 StateConst.Failed
  177.             );
  178.             string actualBatchStatusStr = ValidationHelper.compareBatchStatus.FormatWith(
  179.                 _welcomeBatch.Command,
  180.                 _welcomeBatch.State
  181.             );
  182.             Assert.AreEqual(expectBatchStatusStr, actualBatchStatusStr);
  183.  
  184.             var companyWelcomeBatch = this.DataContext.CompanyWelcomeBatch.FirstOrDefault();
  185.             Assert.AreEqual("System Test Company 2", companyWelcomeBatch.Company.Name);
  186.             Assert.AreEqual((int) CompanyWelcomeBatchStatus.Failed, companyWelcomeBatch.Status);
  187.             AssertCompany2AddedToBatchStatus();
  188.         }
  189.  
  190.         [Test]
  191.         public void Create_BatchFilterFor2CompanyAnd1CompanyHasProcessFailed_ReturnBatchAndCompanyFailed()
  192.         {
  193.             // Arrange
  194.             UpdateCompany1ImportStatus(StateConst.Completed);
  195.             UpdateCompany2ImportStatus(StateConst.Completed);
  196.             UpdateCompany2Id24ToInvalid();
  197.             UpdateCompany1WithCorrectDataInWelcomeBatch();
  198.             UpdateCompany2WithCorrectDataInWelcomeBatch();
  199.  
  200.             InsertWelcomBatchWithFilter2Company();
  201.  
  202.             // Act
  203.             this.AutoSubstitute.Resolve<SPE.BatchProcess.Batches.WelcomeBatch>().Start(_welcomeBatch);
  204.  
  205.             // Assert
  206.             _welcomeBatch = this.DataContext.BatchMasters.Find(_welcomeBatch.BatchId);
  207.             string expectBatchStatusStr = ValidationHelper.compareBatchStatus.FormatWith(
  208.                 CommandConst.Create,
  209.                 StateConst.Failed
  210.             );
  211.             string actualBatchStatusStr = ValidationHelper.compareBatchStatus.FormatWith(
  212.                 _welcomeBatch.Command,
  213.                 _welcomeBatch.State
  214.             );
  215.             Assert.AreEqual(expectBatchStatusStr, actualBatchStatusStr);
  216.  
  217.             var companyWelcomeBatchs = this.DataContext.CompanyWelcomeBatch.ToList();
  218.             Assert.AreEqual(2, companyWelcomeBatchs.Count());
  219.             Assert.AreEqual("System Test Company 1",
  220.                 companyWelcomeBatchs.First(c => c.Status == (int) CompanyWelcomeBatchStatus.Success).Company.Name);
  221.             Assert.AreEqual("System Test Company 2",
  222.                 companyWelcomeBatchs.First(c => c.Status == (int) CompanyWelcomeBatchStatus.Failed).Company.Name);
  223.             AssertCompany1AddedToBatchStatus();
  224.             AssertCompany2AddedToBatchStatus();
  225.         }
  226.  
  227.         [Test]
  228.         public void Create_BatchFilterFor2CompanyAndProcessSucceed_ReturnBatchAndCompanySuccess()
  229.         {
  230.             // Arrange
  231.             UpdateCompany1ImportStatus(StateConst.Completed);
  232.             UpdateCompany2ImportStatus(StateConst.AddedToWelcomeBatch);
  233.             UpdateCompany1WithCorrectDataInWelcomeBatch();
  234.  
  235.             InsertWelcomBatchWithFilter2Company();
  236.  
  237.             // Act
  238.             this.AutoSubstitute.Resolve<SPE.BatchProcess.Batches.WelcomeBatch>().Start(_welcomeBatch);
  239.  
  240.             // Assert
  241.             _welcomeBatch = this.DataContext.BatchMasters.Find(_welcomeBatch.BatchId);
  242.             string expectBatchStatusStr = ValidationHelper.compareBatchStatus.FormatWith(
  243.                 CommandConst.Create,
  244.                 StateConst.Draft
  245.             );
  246.             string actualBatchStatusStr = ValidationHelper.compareBatchStatus.FormatWith(
  247.                 _welcomeBatch.Command,
  248.                 _welcomeBatch.State
  249.             );
  250.             Assert.AreEqual(expectBatchStatusStr, actualBatchStatusStr);
  251.  
  252.             var companyWelcomeBatchs = this.DataContext.CompanyWelcomeBatch.ToList();
  253.             Assert.AreEqual(1, companyWelcomeBatchs.Count());
  254.             Assert.AreEqual((int) CompanyWelcomeBatchStatus.Success,
  255.                 companyWelcomeBatchs.First(c => c.Company.Name == "System Test Company 1").Status);
  256.             AssertCompany1AddedToBatchStatus();
  257.             AssertCompany2AddedToBatchStatus();
  258.         }
  259.  
  260.         [Test]
  261.         public void Create_BatchFilterFor2CompanyAndProcessFailed_ReturnBatchAndCompanyFailed()
  262.         {
  263.             // Arrange
  264.             UpdateCompany1ImportStatus(StateConst.Completed);
  265.             UpdateCompany2ImportStatus(StateConst.Completed);
  266.             UpdateCompany1Id24ToInvalid();
  267.             UpdateCompany2Id24ToInvalid();
  268.  
  269.             InsertWelcomBatchWithFilterEmpty();
  270.  
  271.             // Act
  272.             this.AutoSubstitute.Resolve<SPE.BatchProcess.Batches.WelcomeBatch>().Start(_welcomeBatch);
  273.  
  274.             // Assert
  275.             _welcomeBatch = this.DataContext.BatchMasters.Find(_welcomeBatch.BatchId);
  276.             string expectBatchStatusStr = ValidationHelper.compareBatchStatus.FormatWith(
  277.                 CommandConst.Create,
  278.                 StateConst.Failed
  279.             );
  280.             string actualBatchStatusStr = ValidationHelper.compareBatchStatus.FormatWith(
  281.                 _welcomeBatch.Command,
  282.                 _welcomeBatch.State
  283.             );
  284.             Assert.AreEqual(expectBatchStatusStr, actualBatchStatusStr);
  285.  
  286.             var companyWelcomeBatchs = this.DataContext.CompanyWelcomeBatch.ToList();
  287.             Assert.AreEqual(2, companyWelcomeBatchs.Count());
  288.             Assert.AreEqual((int) CompanyWelcomeBatchStatus.Failed,
  289.                 companyWelcomeBatchs.First(c => c.Company.Name == "System Test Company 1").Status);
  290.             Assert.AreEqual((int) CompanyWelcomeBatchStatus.Failed,
  291.                 companyWelcomeBatchs.First(c => c.Company.Name == "System Test Company 2").Status);
  292.             AssertCompany1AddedToBatchStatus();
  293.             AssertCompany2AddedToBatchStatus();
  294.         }
  295.  
  296.         [Test]
  297.         public void Create_BatchFilterFor1CompanyAndProcessEmailComplete_ReturnCompanyAndBatchSuccess()
  298.         {
  299.             // Arrange
  300.             UpdateCompany1ImportStatus(StateConst.Completed);
  301.             InsertWelcomBatchWithFilterForCompany1();
  302.             UpdateCompany1WithCorrectDataInWelcomeBatch();
  303.  
  304.             // Act
  305.             this.AutoSubstitute.Resolve<SPE.BatchProcess.Batches.WelcomeBatch>().Start(_welcomeBatch);
  306.  
  307.             // Assert
  308.             _welcomeBatch = this.DataContext.BatchMasters.Find(_welcomeBatch.BatchId);
  309.             string expectBatchStatusStr = ValidationHelper.compareBatchStatus.FormatWith(
  310.                 CommandConst.Create,
  311.                 StateConst.Draft
  312.             );
  313.             string actualBatchStatusStr = ValidationHelper.compareBatchStatus.FormatWith(
  314.                 _welcomeBatch.Command,
  315.                 _welcomeBatch.State
  316.             );
  317.             Assert.AreEqual(expectBatchStatusStr, actualBatchStatusStr);
  318.  
  319.             var companyWelcomeBatch = this.DataContext.CompanyWelcomeBatch.FirstOrDefault();
  320.             Assert.AreEqual("System Test Company 1", companyWelcomeBatch.Company.Name);
  321.             Assert.AreEqual((int) CompanyWelcomeBatchStatus.Success, companyWelcomeBatch.Status);
  322.             AssertCompany1AddedToBatchStatus();
  323.         }
  324.  
  325.  
  326.         #endregion
  327.  
  328.  
  329.         #region EmailToAccountant
  330.  
  331.         [Test]
  332.         public void Create_WithCompanyWithOutSalarySystem_ReturnBatchAndCompanyFailed()
  333.         {
  334.             // arrange
  335.             UpdateCompany1ImportStatus(StateConst.Completed);
  336.             UpdateCompany1SalarySystem(string.Empty);
  337.             UpdateCompany2ImportStatus(StateConst.Completed);
  338.             InsertEmailForCompany1();
  339.             InsertWelcomBatchWithFilterForCompany1();
  340.  
  341.  
  342.             // act
  343.             this.AutoSubstitute.Resolve<SPE.BatchProcess.Batches.WelcomeBatch>().Start(_welcomeBatch);
  344.  
  345.             // assert          
  346.             _welcomeBatch = this.DataContext.BatchMasters.Find(_welcomeBatch.BatchId);
  347.             string expectBatchStatusStr = ValidationHelper.compareBatchStatus.FormatWith(CommandConst.Create,
  348.                 StateConst.Failed);
  349.             string actualBatchStatusStr = ValidationHelper.compareBatchStatus.FormatWith(_welcomeBatch.Command,
  350.                 _welcomeBatch.State);
  351.  
  352.             var companyWelcomeBatch = this.DataContext.CompanyWelcomeBatch.FirstOrDefault();
  353.             Assert.AreEqual(expectBatchStatusStr, actualBatchStatusStr);
  354.             Assert.AreEqual((int) CompanyWelcomeBatchStatus.Failed, companyWelcomeBatch.Status);
  355.         }
  356.  
  357.         [Test]
  358.         public void Create_WithCompany1CorrectedData_ReturnBatchAndCompanyCompleted()
  359.         {
  360.             // arrange
  361.             UpdateCompany1ImportStatus(StateConst.Completed);
  362.             InsertEmailForCompany1();
  363.             UpdateCompany1SalarySystem("Visma");
  364.             UpdateCompany1EmailAddress(RoleConstant.Accountant, "liie.m@excelbangkok.com");
  365.             UpdateCompany1FirstDateSavings(DateTime.Now);
  366.  
  367.             var mailBase = AutoSubstitute.SubstituteFor<IMailService>();
  368.             mailBase.PrepareContent(Arg.Any<string>(), Arg.Any<string>(), "liie.m@excelbangkok.com", Arg.Any<string>(),
  369.                     Arg.Any<List<string>>())
  370.                 .Returns(new EmailContent() {Body = "", EmailParameter = new EmailParameter(), Header = "header"});
  371.  
  372.  
  373.             InsertWelcomBatchWithFilterForCompany1();
  374.  
  375.             // act
  376.             this.AutoSubstitute.Resolve<SPE.BatchProcess.Batches.WelcomeBatch>().Start(_welcomeBatch);
  377.  
  378.             // assert          
  379.             _welcomeBatch = this.DataContext.BatchMasters.Find(_welcomeBatch.BatchId);
  380.             string expectBatchStatusStr = ValidationHelper.compareBatchStatus.FormatWith(CommandConst.Create,
  381.                 StateConst.Draft);
  382.             string actualBatchStatusStr = ValidationHelper.compareBatchStatus.FormatWith(_welcomeBatch.Command,
  383.                 _welcomeBatch.State);
  384.  
  385.             var companyWelcomeBatch = this.DataContext.CompanyWelcomeBatch.FirstOrDefault();
  386.             Assert.AreEqual(expectBatchStatusStr, actualBatchStatusStr);
  387.             Assert.AreEqual((int) CompanyWelcomeBatchStatus.Success, companyWelcomeBatch.Status);
  388.         }
  389.  
  390.         [Test]
  391.         public void Create_BatchFilterFor1CompanyAndHasAgentContact_ReturnBatchSuccessAndSendFile()
  392.         {
  393.             // Arrange
  394.             UpdateCompany1ImportStatus(StateConst.Completed);
  395.             UpdateCompany2ImportStatus(StateConst.Completed);
  396.             AddAgentContactForCompany2();
  397.             UpdateCompany2WithCorrectDataInWelcomeBatch();
  398.             InsertWelcomBatchWithFilterForCompany2();
  399.        
  400.             // Act
  401.             this.AutoSubstitute.Resolve<SPE.BatchProcess.Batches.WelcomeBatch>().Start(_welcomeBatch);
  402.  
  403.             // Assert
  404.             _welcomeBatch = this.DataContext.BatchMasters.Find(_welcomeBatch.BatchId);
  405.             string expectBatchStatusStr = ValidationHelper.compareBatchStatus.FormatWith(
  406.                     CommandConst.Create,
  407.                     StateConst.Draft
  408.                 );
  409.             string actualBatchStatusStr = ValidationHelper.compareBatchStatus.FormatWith(
  410.                     _welcomeBatch.Command,
  411.                     _welcomeBatch.State
  412.                 );
  413.             Assert.AreEqual(expectBatchStatusStr, actualBatchStatusStr);
  414.  
  415.             var companyWelcomeBatchs = this.DataContext.CompanyWelcomeBatch.ToList();
  416.             Assert.AreEqual(1, companyWelcomeBatchs.Count());
  417.             Assert.AreEqual((int)CompanyWelcomeBatchStatus.Success, companyWelcomeBatchs.First(c => c.Company.Name == "System Test Company 2").Status);
  418.             AssertCompany2AddedToBatchStatus();
  419.  
  420.         }
  421.         #endregion
  422.  
  423.  
  424.         #region [Privates]
  425.  
  426.         private void AddAgentContactForCompany2()
  427.         {
  428.             using (var speContext = new SPEContext())
  429.             {
  430.                 var personArtId = Guid.Parse("16000000-0000-0000-0000-000000000001");
  431.                 var personArt = speContext.Persons.FirstOrDefault(p => p.PersonId == personArtId);
  432.                 var company2Id = Guid.Parse("30000000-0000-0000-0000-000000000002");
  433.                 var company1 = speContext.Companies.FirstOrDefault(c => c.CompanyId == company2Id);
  434.                 var contact = new Contact()
  435.                 {
  436.                     Id = Guid.NewGuid(),
  437.                     ContactId = (int)personArt.PersonId24,
  438.                     Company = company1,
  439.                     Person = personArt,
  440.                     FirstName = "Art",
  441.                     LastName = "Sanut",
  442.                     Role = RoleConstant.Agent
  443.                 };
  444.                 speContext.Contacts.Add(contact);
  445.                 speContext.SaveChanges();
  446.             }
  447.         }
  448.  
  449.         private void InsertEmailForCompany1()
  450.         {
  451.             var companyId = Guid.Parse("30000000-0000-0000-0000-000000000001");
  452.             var company = this.DataContext.Contacts.FirstOrDefault(c => c.Company.CompanyId == companyId);
  453.             var emaiAddress = ConfigHelper.GetAppSetting("emailSupport", "art.a@excelbangkok.com");
  454.             //var emaiAddress = "";
  455.             company.Email = emaiAddress;
  456.             company.Role = RoleConstant.PrimaryContact;
  457.             this.DataContext.SaveChanges();
  458.         }
  459.  
  460.         private void InsertEmailCedingForCompany1() {
  461.  
  462.             var savingProviders = "SavingsProviders_1";
  463.             var companyId = Guid.Parse("30000000-0000-0000-0000-000000000001");
  464.             var otpContract = this.DataContext.OTPContracts.FirstOrDefault(c => c.Company.CompanyId == companyId);
  465.             otpContract.SeedingComp = savingProviders;
  466.             var savingProvider = this.DataContext.SavingsProviders.FirstOrDefault(a => a.ProviderName == savingProviders);
  467.             var emaiAddress = ConfigHelper.GetAppSetting("emailSupport", "art.a@excelbangkok.com");
  468.             savingProvider.EmailCedingCompany = emaiAddress;
  469.  
  470.             this.DataContext.SaveChanges();
  471.         }
  472.  
  473.         private void AssertCompany1AddedToBatchStatus()
  474.         {
  475.             var companyId = Guid.Parse("30000000-0000-0000-0000-000000000001");
  476.             var company = this.DataContext.Companies.FirstOrDefault(c => c.CompanyId == companyId);
  477.             Assert.AreEqual(StateConst.AddedToWelcomeBatch, company.ImportStatus);
  478.         }
  479.  
  480.         private void AssertCompany2AddedToBatchStatus()
  481.         {
  482.             var companyId = Guid.Parse("30000000-0000-0000-0000-000000000002");
  483.             var company = this.DataContext.Companies.FirstOrDefault(c => c.CompanyId == companyId);
  484.             Assert.AreEqual(StateConst.AddedToWelcomeBatch, company.ImportStatus);
  485.         }
  486.  
  487.         private void InsertWelcomBatchWithFilter2Company()
  488.         {
  489.             _welcomeBatch = this.ModelFactory.CreateModelWithTemplate<SPE_Model.Batch.BatchMaster>();
  490.             _welcomeBatch.BatchService =
  491.                 this.DataContext.BatchServices.Where(s => s.ServiceName == BatchName.WelcomeBatch).FirstOrDefault();
  492.  
  493.             _welcomeBatch.Command = CommandConst.Create;
  494.             _welcomeBatch.State = StateConst.Failed;
  495.             _welcomeBatch.Filter = "412298772,169776792";
  496.  
  497.             this.DataContext.BatchMasters.Add(_welcomeBatch);
  498.             this.DataContext.SaveChanges();
  499.         }
  500.  
  501.         private void UpdateCompany2Id24ToInvalid()
  502.         {
  503.             var companyId = Guid.Parse("30000000-0000-0000-0000-000000000002");
  504.             using (var speContext = new SPEContext())
  505.             {
  506.                 var company = speContext.Companies.FirstOrDefault(c => c.CompanyId == companyId);
  507.                 company.Id24 = -1;
  508.                 speContext.SaveChanges();
  509.             }
  510.         }
  511.  
  512.         private void InsertWelcomBatchWithFilterEmpty()
  513.         {
  514.             _welcomeBatch = this.ModelFactory.CreateModelWithTemplate<SPE_Model.Batch.BatchMaster>();
  515.             _welcomeBatch.BatchService =
  516.                 this.DataContext.BatchServices.Where(s => s.ServiceName == BatchName.WelcomeBatch).FirstOrDefault();
  517.  
  518.             _welcomeBatch.Command = CommandConst.Create;
  519.             _welcomeBatch.State = StateConst.Failed;
  520.             _welcomeBatch.Filter = "";
  521.  
  522.             this.DataContext.BatchMasters.Add(_welcomeBatch);
  523.             this.DataContext.SaveChanges();
  524.         }
  525.  
  526.         private void UpdateCompany2ImportStatus(int importStatus)
  527.         {
  528.             var companyId = Guid.Parse("30000000-0000-0000-0000-000000000002");
  529.             using (var speContext = new SPEContext())
  530.             {
  531.                 var company = speContext.Companies.FirstOrDefault(c => c.CompanyId == companyId);
  532.                 company.ImportStatus = importStatus;
  533.                 company.UpdatedSPE = DateTime.Now;
  534.                 speContext.SaveChanges();
  535.             }
  536.         }
  537.  
  538.         private void UpdateCompany1Id24ToInvalid()
  539.         {
  540.             var companyId = Guid.Parse("30000000-0000-0000-0000-000000000001");
  541.             using (var speContext = new SPEContext())
  542.             {
  543.                 var company = speContext.Companies.FirstOrDefault(c => c.CompanyId == companyId);
  544.                 company.Id24 = -1;
  545.                 speContext.SaveChanges();
  546.             }
  547.         }
  548.  
  549.         private void InsertWelcomBatchWithFilterForCompany1()
  550.         {
  551.             _welcomeBatch = this.ModelFactory.CreateModelWithTemplate<SPE_Model.Batch.BatchMaster>();
  552.             _welcomeBatch.BatchService =
  553.                 this.DataContext.BatchServices.Where(s => s.ServiceName == BatchName.WelcomeBatch).FirstOrDefault();
  554.  
  555.             _welcomeBatch.Command = CommandConst.Create;
  556.             _welcomeBatch.State = StateConst.Failed;
  557.             _welcomeBatch.Filter = "412298772";
  558.  
  559.             this.DataContext.BatchMasters.Add(_welcomeBatch);
  560.             this.DataContext.SaveChanges();
  561.  
  562.         }
  563.         private void InsertWelcomBatchWithFilterForCompany2()
  564.         {
  565.             _welcomeBatch = this.ModelFactory.CreateModelWithTemplate<SPE_Model.Batch.BatchMaster>();
  566.             _welcomeBatch.BatchService = this.DataContext.BatchServices.Where(s => s.ServiceName == BatchName.WelcomeBatch).FirstOrDefault();
  567.  
  568.             _welcomeBatch.Command = CommandConst.Create;
  569.             _welcomeBatch.State = StateConst.Failed;
  570.             _welcomeBatch.Filter = "169776792";
  571.  
  572.             this.DataContext.BatchMasters.Add(_welcomeBatch);
  573.             this.DataContext.SaveChanges();
  574.  
  575.         }
  576.  
  577.         private void UpdateCompany1ImportStatus(int importStatus)
  578.         {
  579.             var companyId = Guid.Parse("30000000-0000-0000-0000-000000000001");
  580.             using (var speContext = new SPEContext())
  581.             {
  582.                 var company = speContext.Companies.FirstOrDefault(c => c.CompanyId == companyId);
  583.                 company.ImportStatus = importStatus;
  584.                 company.UpdatedSPE = DateTime.Now;
  585.                 speContext.SaveChanges();
  586.             }
  587.         }
  588.  
  589.         private void UpdateCompany1SalarySystem(string salarySystem)
  590.         {
  591.             var companyId = Guid.Parse("30000000-0000-0000-0000-000000000001");
  592.             using (var speContext = new SPEContext())
  593.             {
  594.                 var company = speContext.Companies.FirstOrDefault(c => c.CompanyId == companyId);
  595.                 company.OTPContracts.FirstOrDefault().SalarySystem = salarySystem;
  596.                 company.UpdatedSPE = DateTime.Now;
  597.                 speContext.SaveChanges();
  598.             }
  599.         }
  600.  
  601.         private void UpdateCompany2SalarySystem(string salarySystem)
  602.         {
  603.             var companyId = Guid.Parse("30000000-0000-0000-0000-000000000002");
  604.             using (var speContext = new SPEContext())
  605.             {
  606.                 var company = speContext.Companies.FirstOrDefault(c => c.CompanyId == companyId);
  607.                 company.OTPContracts.FirstOrDefault().SalarySystem = salarySystem;
  608.                 company.UpdatedSPE = DateTime.Now;
  609.                 speContext.SaveChanges();
  610.             }
  611.         }
  612.  
  613.         private void UpdateCompany1FirstDateSavings(DateTime datetime)
  614.         {
  615.             var companyId = Guid.Parse("30000000-0000-0000-0000-000000000001");
  616.             using (var speContext = new SPEContext())
  617.             {
  618.                 var company = speContext.Companies.FirstOrDefault(c => c.CompanyId == companyId);
  619.                 company.OTPContracts.FirstOrDefault().SavingsStartDate = datetime;
  620.                 company.UpdatedSPE = DateTime.Now;
  621.                 speContext.SaveChanges();
  622.             }
  623.         }
  624.  
  625.         private void UpdateCompany2FirstDateSavings(DateTime datetime)
  626.         {
  627.             var companyId = Guid.Parse("30000000-0000-0000-0000-000000000002");
  628.             using (var speContext = new SPEContext())
  629.             {
  630.                 var company = speContext.Companies.FirstOrDefault(c => c.CompanyId == companyId);
  631.                 company.OTPContracts.FirstOrDefault().SavingsStartDate = datetime;
  632.                 company.UpdatedSPE = DateTime.Now;
  633.                 speContext.SaveChanges();
  634.             }
  635.         }
  636.  
  637.         private void UpdateCompany1WithCorrectDataInWelcomeBatch()
  638.         {
  639.            
  640.             #region Accountant Flow
  641.  
  642.             //Add accountant/company email
  643.             UpdateCompany1EmailAddress(RoleConstant.Accountant, "accountant@email.com");
  644.             UpdateCompany1EmailAddress(RoleConstant.PrimaryContact, "company@email.com");
  645.  
  646.             //update salary system
  647.             UpdateCompany1SalarySystem("Visma");
  648.  
  649.             //update first date savings
  650.             UpdateCompany1FirstDateSavings(DateTime.Now);
  651.  
  652.             UpdateCompany1CeedingCompany();
  653.  
  654.             #endregion
  655.         }
  656.  
  657.         private void UpdateCompany2WithCorrectDataInWelcomeBatch()
  658.         {
  659.             UpdateCompany2EmailAddressAndName(RoleConstant.Accountant, "accountant@email.com", "AccountantFirstName", "AccounantLastName");
  660.             UpdateCompany2EmailAddressAndName(RoleConstant.PrimaryContact, "company2@email.com","CompanyFirstName", "CompanyLastName");
  661.             UpdateCompany2EmailAddressAndName(RoleConstant.Agent, "agent@email.com", "Admin", "SPE");
  662.  
  663.             UpdateCompany2SalarySystem("Visma");
  664.  
  665.             UpdateCompany2FirstDateSavings(DateTime.Now);
  666.  
  667.             UpdateCompany2CeedingCompany();
  668.         }
  669.  
  670.         private void UpdateCompany2EmailAddressAndName(string roleConstant, string email, string firstName = null, string  lastName = null)
  671.         {
  672.  
  673.             var companyId = Guid.Parse("30000000-0000-0000-0000-000000000002");
  674.             using (var speContext = new SPEContext())
  675.             {
  676.                 var company = speContext.Companies.Find(companyId);
  677.                 company.Contacts.Add(new Contact()
  678.                 {
  679.                     Id = Guid.NewGuid(),
  680.                     Company = company,
  681.                     Email = email,
  682.                     Role = roleConstant,
  683.                     FirstName = firstName ?? "Admin",
  684.                     LastName = lastName ?? "SPE"
  685.                 });
  686.                 speContext.SaveChanges();
  687.             }
  688.  
  689.  
  690.         }
  691.  
  692.         private void UpdateCompany1EmailAddress(string roleConstant, string email)
  693.             {
  694.                 var companyId = Guid.Parse("30000000-0000-0000-0000-000000000001");
  695.                 using (var speContext = new SPEContext())
  696.                 {
  697.                     var company = speContext.Companies.Find(companyId);
  698.                     company.Contacts.Add(new Contact() {Id = Guid.NewGuid(), Company = company, Email = email, Role = roleConstant});
  699.                     speContext.SaveChanges();
  700.                 }
  701.             }
  702.  
  703.         private void UpdateSeedingCompany()
  704.         {
  705.             using (var context = new SPEContext())
  706.             {
  707.                 context.SavingsProviders.Add(SavingsProvidersTest1);
  708.                 context.SaveChanges();
  709.             }
  710.         }
  711.  
  712.         private void UpdateCompany2CeedingCompany()
  713.         {
  714.             var companyId = Guid.Parse("30000000-0000-0000-0000-000000000002");
  715.             using (var context = new SPEContext())
  716.             {
  717.                 var comp2 = context.Companies.Find(companyId);
  718.                 comp2.OTPContracts.FirstOrDefault().SeedingComp = SavingsProvidersTest1.ProviderName;
  719.                 context.SaveChanges();
  720.             }
  721.         }
  722.  
  723.         private void UpdateCompany1CeedingCompany()
  724.         {
  725.             var companyId = Guid.Parse("30000000-0000-0000-0000-000000000001");
  726.             using (var context = new SPEContext())
  727.             {
  728.                 var comp2 = context.Companies.Find(companyId);
  729.                 comp2.OTPContracts.FirstOrDefault().SeedingComp = SavingsProvidersTest1.ProviderName;
  730.                 context.SaveChanges();
  731.             }
  732.  
  733.         }
  734.  
  735.         private SavingsProviders SavingsProvidersTest1 => new SavingsProviders() { EmailCedingCompany = "ceeding@email.com", ProviderName = "SavingProviderProviderTest1" , Id = Guid.Parse("A0000000-0000-0000-0000-000000000001"), IsActive = true, Sequence = 10};
  736.  
  737.         #endregion
  738.     }
  739. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement