Example #1
0
        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);
        }
Example #2
0
        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();
        }
Example #3
0
        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);
        }
Example #4
0
        public void GetIsolateByReference_InexistingIsolate_ReturnsNull()
        {
            var controller = new PubMlstService(GetUrlReturns404, PostUrlReturns404);

            var isolate = controller.GetIsolateByReference("DE14");

            isolate.Should().BeNull();
        }
Example #5
0
        public void GetIsolateByReference_InexistingIsolateWithoutMock_ReturnsNull()
        {
            var controller = new PubMlstService();

            var isolate = controller.GetIsolateByReference("DE14");

            isolate.Should().BeNull();
        }
Example #6
0
        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();
        }
Example #7
0
        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");
        }
Example #8
0
        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();
        }