コード例 #1
0
        public void GetPersonCompletingProgramQuery_ReturnsCorrectData()
        {
            var startDate = new DateTime(2019, 1, 1);
            var endDate   = new DateTime(2019, 2, 4);

            var rockContext = new RockContext();
            var service     = new StepProgramService(rockContext);
            var stepProgram = service.Queryable().Where(sp => sp.ForeignKey == ForeignKey).First();
            var result      = service.GetPersonCompletingProgramQuery(stepProgram.Id).ToList();

            Assert.IsNotNull(result);
            Assert.AreEqual(2, result.Count);

            var personService = new PersonService(rockContext);
            var kathy         = personService.Get(KathyKolePersonGuidString.AsGuid());
            var jerry         = personService.Get(JerryJenkinsPersonGuidString.AsGuid());

            var kathyResult = result.FirstOrDefault(r => r.PersonId == kathy.Id);
            var jerryResult = result.FirstOrDefault(r => r.PersonId == jerry.Id);

            // Kathy completed once in 2019 and once in 2020 - we should only get the first
            Assert.IsNotNull(kathyResult);
            Assert.AreEqual(new DateTime(2019, 1, 1), kathyResult.StartedDateTime);
            Assert.AreEqual(new DateTime(2019, 4, 1), kathyResult.CompletedDateTime);

            // Jerry completed with two aliases. The first alias started in 2019. The second alias finished in 2020
            Assert.IsNotNull(jerryResult);
            Assert.AreEqual(new DateTime(2019, 1, 1), jerryResult.StartedDateTime);
            Assert.AreEqual(new DateTime(2020, 3, 1), jerryResult.CompletedDateTime);
        }