示例#1
0
        public async Task ImportBallotStatusTrackingData_ThrowsExceptionOnDupliateTrackingIds()
        {
            var tp   = new TrackingDataParser(_loggerFactory.Object);
            var data = TestFactory.GetTestTrackingDataStream(true);

            try
            {
                await GetService(trackingParser : tp).ImportBallotStatusTrackingData(data);

                Assert.Fail("Expected InvalidOperationException");
            }
            catch (InvalidOperationException ex)
            {
                Assert.AreEqual("The uploaded data contained entries with the same normalized tracking ids", ex.Message);
            }

            _repo.Verify(r => r.ImportBallotStatusTrackingData(It.IsAny <IEnumerable <BallotStatus> >(), It.IsAny <bool>()), Times.Never);
        }
示例#2
0
        public async Task GetBallotMatchingPattern_PopulatesRepoWithTestDataIfEmptyWhenInDevelopment()
        {
            _hostingEnvironment = TestFactory.CreateHostingEnvironment("Development");
            _repo.Setup(m => m.ImportBallotStatusTrackingData(It.IsAny <IEnumerable <BallotStatus> >(), It.IsAny <bool>()))
            .Callback <IEnumerable <BallotStatus>, bool>((statuses, onlyIfEmpty) =>
            {
                var list = statuses.ToList();

                Assert.IsTrue(onlyIfEmpty);
                var record = list.Single(s =>
                {
                    return(s.TrackingId == "shipyard JTGDK blood 3YGKK moat 3V9M8 brass BHJPB salami MMDYF pot GQ4W6 chord MFHKD moonshine" &&
                           s.Location == "Precinct 1" &&
                           s.ApproximateCastTime == DateTime.Parse("7/14/2019 13:43"));
                });
            });
            var tp = new TrackingDataParser(_loggerFactory.Object);

            await GetService(trackingParser : tp).GetBallotsMatchingPattern("something");

            _repo.Verify(r => r.GetBallotStatusForTokenPattern("something"), Times.Once);
            _repo.Verify(r => r.ImportBallotStatusTrackingData(It.IsAny <IEnumerable <BallotStatus> >(), true), Times.Once);
        }
示例#3
0
        public async Task ImportBallotStatusTrackingData_UpdatesRepo()
        {
            var tp = new TrackingDataParser(_loggerFactory.Object);

            _repo.Setup(m => m.ImportBallotStatusTrackingData(It.IsAny <IEnumerable <BallotStatus> >(), It.IsAny <bool>()))
            .Callback <IEnumerable <BallotStatus>, bool>((statuses, onlyIfEmpty) =>
            {
                var list = statuses.ToList();

                Assert.IsFalse(onlyIfEmpty);
                Assert.AreEqual(3, list.Count);
                var record = list.Single(s =>
                {
                    return(s.TrackingId == "stealth" &&
                           s.Location == "location1" &&
                           s.ApproximateCastTime == DateTime.Parse("1/1/2001"));
                });
            });
            var data = TestFactory.GetTestTrackingDataStream();

            await GetService(trackingParser : tp).ImportBallotStatusTrackingData(data);

            _repo.Verify(r => r.ImportBallotStatusTrackingData(It.IsAny <IEnumerable <BallotStatus> >(), false), Times.Once);
        }