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); }
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); }
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); }