public void Match_WithCorrespondingPupMlstRecord_FindsMatchAndCreatesPubMlstIsolate() { var sut = CreatePubMlstMatcher(); var pubMlstIsolate = MockData.CreateInstance <NeisseriaPubMlstIsolate>(); pubMlstIsolate.PubMlstId = 18377; _pubMlstService.GetIsolateByReference("DE1").Returns(pubMlstIsolate); var result = sut.Match(new FromToQuery { From = _firstDayMorning, To = _firstDayMorning.AddDays(1) }); var match = result.First(); match.PubMlstId.Should().Be(18377); match.StemNumber.Should().Be("DE1"); var pubMlstIsolateId = match.NeisseriaPubMlstIsolateId.Should().HaveValue().And.Subject; _database.NeisseriaPubMlstIsolates.Find(pubMlstIsolateId).Should().NotBeNull(); var isolate = _database.MeningoIsolates.First(); isolate.NeisseriaPubMlstIsolate.Should().NotBeNull(); match.LaboratoryNumber.Should().Be(isolate.LaboratoryNumberWithPrefix); }
public void GetIsolateByReference_SchemesPropertyNull_OtherValuesAreSet() { var controller = new PubMlstService(GetUrlReturningIsolateWithoutSchemes, PostUrlReturnsResult); var isolate = controller.GetIsolateByReference("DE14505"); isolate.PubMlstId.Should().Be(93683); isolate.PorAVr1.Should().Be("5"); isolate.PorAVr2.Should().Be("2"); isolate.FetAVr.Should().Be("F3-6"); isolate.PorB.Should().Be("2-2"); isolate.Fhbp.Should().Be("1511"); isolate.Nhba.Should().Be("20"); isolate.NadA.Should().Be(""); isolate.PenA.Should().Be("1"); isolate.GyrA.Should().Be("4"); isolate.ParC.Should().Be("1"); isolate.ParE.Should().Be("1"); isolate.RpoB.Should().Be("4"); isolate.RplF.Should().Be("1"); isolate.PorAVr1.Should().Be("5"); isolate.PorAVr2.Should().Be("2"); isolate.SequenceType.Should().BeNull(); isolate.ClonalComplex.Should().BeNull(); isolate.BexseroReactivity.Should().BeNull(); isolate.TrumenbaReactivity.Should().BeNull(); }
public List <PubMlstMatchInfo> Match(FromToQuery fromTo) { var matches = new List <PubMlstMatchInfo>(); var matchingIsolates = _db.MeningoIsolates.Include(i => i.Sending).Where(i => i.Sending.SamplingDate == null && i.Sending.ReceivingDate >= fromTo.From && i.Sending.ReceivingDate <= fromTo.To || i.Sending.SamplingDate >= fromTo.From && i.Sending.SamplingDate <= fromTo.To).ToList(); foreach (var isolate in matchingIsolates) { var pubMlstMatchInfo = new PubMlstMatchInfo { IsolateId = isolate.MeningoIsolateId, StemNumber = isolate.StemNumberWithPrefix, LaboratoryNumber = isolate.LaboratoryNumberWithPrefix }; var pubMlstIsolate = isolate.StemNumber.HasValue ? _pubMlstService.GetIsolateByReference(isolate.StemNumberWithPrefix) : null; if (pubMlstIsolate != null) { pubMlstIsolate = CreateOrUpdatePubMlstIsolate(isolate, pubMlstIsolate); _db.MarkAsModified(isolate); _db.SaveChanges(); pubMlstMatchInfo.NeisseriaPubMlstIsolateId = pubMlstIsolate.NeisseriaPubMlstIsolateId; pubMlstMatchInfo.PubMlstId = pubMlstIsolate.PubMlstId; } matches.Add(pubMlstMatchInfo); } return(matches); }
public void GetIsolateByReference_InexistingIsolate_ReturnsNull() { var controller = new PubMlstService(GetUrlReturns404, PostUrlReturns404); var isolate = controller.GetIsolateByReference("DE14"); isolate.Should().BeNull(); }
public void GetIsolateByReference_InexistingIsolateWithoutMock_ReturnsNull() { var controller = new PubMlstService(); var isolate = controller.GetIsolateByReference("DE14"); isolate.Should().BeNull(); }
public void GetIsolateByReference_ExistingIsolateWithoutMock_FieldsAreSet() { var controller = new PubMlstService(); var isolate = controller.GetIsolateByReference("DE14692"); isolate.PorAVr1.Should().Be("7-1"); isolate.PorAVr2.Should().Be("1"); isolate.SequenceType.Should().BeNull(); isolate.ClonalComplex.Should().BeNull(); }
public void GetIsolateByReference_ExistingIsolate_FieldsAreSet() { var controller = new PubMlstService(GetUrlReturningIsolate, PostUrlReturnsResult); var isolate = controller.GetIsolateByReference("DE14505"); isolate.PubMlstId.Should().Be(93683); isolate.PorAVr1.Should().Be("5"); isolate.PorAVr2.Should().Be("2"); isolate.SequenceType.Should().Be("23"); isolate.ClonalComplex.Should().Be("ST-23 complex"); }
public void GetIsolateByReference_FieldsPropertyNull_OtherValuesAreSet() { var controller = new PubMlstService(GetUrlReturningIsolateWithoutFields, PostUrlReturnsResult); var isolate = controller.GetIsolateByReference("DE14505"); isolate.PubMlstId.Should().Be(93683); isolate.PorAVr1.Should().Be("5"); isolate.PorAVr2.Should().Be("2"); isolate.SequenceType.Should().BeNull(); isolate.ClonalComplex.Should().BeNull(); isolate.BexseroReactivity.Should().BeNull(); isolate.TrumenbaReactivity.Should().BeNull(); }