コード例 #1
0
 public void Init()
 {
     CreatePemFile();
     _epochConverter = new EpochConverter();
     _mapper         = new ExposureKeyMapper(_epochConverter);
     SetupMockConfiguration();
 }
        public void MapDtoWithSharingTrue_ToEntity_ShouldHaveSharingTrue()
        {
            //Arrange
            var dto = new TemporaryExposureKeyBatchDto()
            {
                keys = new List <TemporaryExposureKeyDto>
                {
                    new TemporaryExposureKeyDto()
                    {
                    },
                    new TemporaryExposureKeyDto()
                    {
                    }
                },
                isSharingAllowed = true
            };
            var mapper = new ExposureKeyMapper(_epochConverter);

            //Act
            var entities = mapper.FromDtoToEntity(dto);

            //Assert
            entities.Should().NotBeNull();
            entities.Should().NotBeEmpty();
            entities.Select(ent => ent.SharingConsentGiven).Should().AllBeEquivalentTo(true);
        }
        private void SetupTemporaryExposureKeyExport()
        {
            var data = new List <TemporaryExposureKey> {
                new TemporaryExposureKey
                {
                    CreatedOn                = DateTime.UtcNow.Date,
                    Id                       = Guid.NewGuid(),
                    KeyData                  = Encoding.ASCII.GetBytes("keyData1"),
                    TransmissionRiskLevel    = RiskLevel.RISK_LEVEL_LOW,
                    ReportType               = ReportType.CONFIRMED_TEST,
                    DaysSinceOnsetOfSymptoms = 1
                },
                new TemporaryExposureKey
                {
                    CreatedOn                = DateTime.UtcNow.Date.AddDays(-12),
                    Id                       = Guid.NewGuid(),
                    KeyData                  = Encoding.ASCII.GetBytes("keyData2"),
                    TransmissionRiskLevel    = RiskLevel.RISK_LEVEL_HIGH,
                    ReportType               = ReportType.CONFIRMED_TEST,
                    DaysSinceOnsetOfSymptoms = 2
                }
            };
            ExposureKeyMapper mapper = new ExposureKeyMapper(_epochConverter);

            _exportBatch = mapper.FromEntityToProtoBatch(data);
        }
        public void FromEntityToProto_GiveEntity_ShouldReturnCorrectProtoModel()
        {
            var mockEntity = CreateMockedExposureKey();

            var mapper     = new ExposureKeyMapper(_epochConverter);
            var protoModel = mapper.FromEntityToProto(mockEntity);

            Assert.AreEqual(mockEntity.KeyData, protoModel.KeyData);
            Assert.AreEqual((int)mockEntity.RollingPeriod, protoModel.RollingPeriod);
            Assert.AreEqual((int)mockEntity.RollingStartNumber / (60 * 10), protoModel.RollingStartIntervalNumber);
            Assert.AreEqual((int)mockEntity.TransmissionRiskLevel, protoModel.TransmissionRiskLevel);
            Assert.IsInstanceOf <Domain.Proto.TemporaryExposureKey>(protoModel);
        }
コード例 #5
0
        public void Init()
        {
            _exposureKeyMock   = new ExposureKeyMock();
            _countryFactory    = new CountryMockFactory();
            _mockServices      = new SetupMockedServices();
            _keyValidator      = new Mock <IKeyValidator>(MockBehavior.Strict);
            _logger            = new Mock <ILogger <KeyFilter> >();
            _repository        = new Mock <ITemporaryExposureKeyRepository>(MockBehavior.Strict);
            _countryRepository = new Mock <ICountryRepository>(MockBehavior.Strict);
            _mockServices.SetupMapperAndCountryRepositoryMock(_countryRepository);
            _keyMapper = _mockServices.CreateAutoMapperWithDependencies(_countryRepository.Object);
            _mockServices.SetupKeyValidatorMock(_keyValidator);
            _mockServices.SetupTemopraryExposureKeyRepositoryMock(_repository);

            var mapper = new ExposureKeyMapper();

            _keyFilter = new KeyFilter(_keyMapper, _keyValidator.Object, mapper, _logger.Object, _repository.Object);
        }
        public void FromEntityToProtoBatch_GiveEntityList_ShouldReturnCorrectProtoBatchModel()
        {
            int listCount  = 3;
            var keys       = CreateMockedListExposureKeys(listCount);
            var keysByTime = keys.OrderBy(k => k.CreatedOn);
            var startTimes = new DateTimeOffset(keysByTime.First().CreatedOn);
            var endTimes   = new DateTimeOffset(keysByTime.Last().CreatedOn);

            var mapper     = new ExposureKeyMapper(_epochConverter);
            var protoBatch = mapper.FromEntityToProtoBatch(keys);

            Assert.AreEqual(listCount, protoBatch.Keys.Count);
            Assert.AreEqual(protoBatch.BatchNum, 1);
            Assert.AreEqual(protoBatch.BatchSize, 1);
            Assert.AreEqual(protoBatch.StartTimestamp, startTimes.ToUnixTimeSeconds());
            Assert.AreEqual(protoBatch.EndTimestamp, endTimes.ToUnixTimeSeconds());
            Assert.AreEqual(protoBatch.Region, "NO");
            Assert.IsInstanceOf <Domain.Proto.TemporaryExposureKeyExport>(protoBatch);
        }
コード例 #7
0
        private EuGatewayService CreateGatewayServiceAndDependencies(IGatewayHttpClient httpClient)
        {
            _keysRepository = new TemporaryExposureKeyRepository(_dbContext, _countryRepository, _temporaryExposureKeyRepositoryLogger.Object);

            var signatureServiceMock = new Mock <ISignatureService>(MockBehavior.Strict);

            var webContextReader = new GatewayWebContextReader(_autoMapper, _loggerGatewayWebContextReader.Object);

            var epochConverter = new EpochConverter();

            var keyValidator        = new KeyValidator(epochConverter);
            var exposureKeyMapper   = new ExposureKeyMapper(_epochConverter);
            var keyFilterLoggerMock = new Mock <ILogger <KeyFilter> >(MockBehavior.Loose);
            var keyFilter           = new KeyFilter(_autoMapper, keyValidator, exposureKeyMapper, keyFilterLoggerMock.Object, _keysRepository);

            var storeServiceLoggerMock = new Mock <ILogger <EFGSKeyStoreService> >();

            var riskCalculator = new RiskCalculator();
            var dsosDecoder    = new DaysSinceOnsetOfSymptomsDecoder();
            var addTemporaryExposureKeyService = new Mock <IAddTemporaryExposureKeyService>(MockBehavior.Strict);

            addTemporaryExposureKeyService
            .Setup(x => x.FilterDuplicateKeysAsync(It.IsAny <List <TemporaryExposureKey> >()))
            .ReturnsAsync((List <TemporaryExposureKey> argument) =>
            {
                return(argument);
            });
            var storeService             = new EFGSKeyStoreService(keyFilter, _keysRepository, storeServiceLoggerMock.Object, riskCalculator, epochConverter, dsosDecoder, addTemporaryExposureKeyService.Object);
            var gatewayServiceLoggerMock = new Mock <ILogger <EuGatewayService> >(MockBehavior.Loose);

            return(CreateGatewayService(
                       _keysRepository,
                       signatureServiceMock.Object,
                       _autoMapper,
                       httpClient,
                       keyFilter,
                       webContextReader,
                       storeService,
                       gatewayServiceLoggerMock.Object,
                       epochConverter,
                       _config
                       ));
        }
コード例 #8
0
        private void SetupTemporaryExposureKeyExport()
        {
            var data = new List <TemporaryExposureKey> {
                new TemporaryExposureKey()
                {
                    CreatedOn             = DateTime.UtcNow.Date,
                    Id                    = Guid.NewGuid(),
                    KeyData               = Encoding.ASCII.GetBytes("keyData1"),
                    TransmissionRiskLevel = RiskLevel.RISK_LEVEL_LOW,
                },
                new TemporaryExposureKey()
                {
                    CreatedOn             = DateTime.UtcNow.Date.AddDays(-12),
                    Id                    = Guid.NewGuid(),
                    KeyData               = Encoding.ASCII.GetBytes("keyData2"),
                    TransmissionRiskLevel = RiskLevel.RISK_LEVEL_HIGH,
                }
            };
            ExposureKeyMapper mapper = new ExposureKeyMapper();

            _exportBatch = mapper.FromEntityToProtoBatch(data);
        }
コード例 #9
0
        public void FilterDuplicateKeys_GiveKeysInExistingKeys_ShouldReturnKeysThatNotExistBefore(int value)
        {
            int listCount    = 3;
            var keys         = CreateMockedListExposureKeys(listCount);
            var existingKeys = new List <TemporaryExposureKey>()
            {
            };

            for (int i = 0; i <= value; i++)
            {
                TemporaryExposureKey existKey = keys[i];
                existingKeys.Add(new TemporaryExposureKey()
                {
                    KeyData = existKey.KeyData, CreatedOn = DateTime.UtcNow.AddDays(-1)
                });
            }
            var expectedKeysCount = keys.Count - existingKeys.Count;

            var mapper         = new ExposureKeyMapper();
            var extractNewKeys = mapper.FilterDuplicateKeys(keys, existingKeys);

            Assert.AreEqual(extractNewKeys.Count, expectedKeysCount);
        }