protected override void Arrange() { _edfiOdsInstanceIdentificationProvider = Stub <IEdFiOdsInstanceIdentificationProvider>(); _usiValueMapper = Stub <IUniqueIdToUsiValueMapper>(); _suppliedUsiValueMap = new PersonIdentifiersValueMap { UniqueId = Guid.NewGuid() .ToString(), Usi = 10, Id = Guid.NewGuid() // Id is also provided by the USI value mapper }; A.CallTo(() => _usiValueMapper.GetUniqueId(A <string> ._, A <int> ._)) .Returns(_suppliedUsiValueMap); _personIdentifiersProvider = Stub <IPersonIdentifiersProvider>(); A.CallTo(() => _personIdentifiersProvider.GetAllPersonIdentifiers(A <string> ._)) .Returns(Task.Run(() => (IEnumerable <PersonIdentifiersValueMap>) new PersonIdentifiersValueMap[0])); SetupCaching(); void SetupCaching() { var memorycacheoption = A.Fake <IOptions <MemoryCacheOptions> >(); MemoryCache memoryCache = new MemoryCache(memorycacheoption); _memoryCacheProvider = new MemoryCacheProvider(memoryCache); _usiCache = new PersonUniqueIdToUsiCache( _memoryCacheProvider, _edfiOdsInstanceIdentificationProvider, _usiValueMapper, _personIdentifiersProvider, TimeSpan.Zero, TimeSpan.Zero, synchronousInitialization: true); PersonUniqueIdToUsiCache.GetCache = () => _usiCache; } }
protected override void Arrange() { _edfiOdsInstanceIdentificationProvider = Stub <IEdFiOdsInstanceIdentificationProvider>(); _idValueMapper = Stub <IUniqueIdToIdValueMapper>(); _usiValueMapper = Stub <IUniqueIdToUsiValueMapper>(); _personIdentifiersProvider = Stub <IPersonIdentifiersProvider>(); _suppliedUsiValueMap = new PersonIdentifiersValueMap { UniqueId = Guid.NewGuid() .ToString(), Usi = 10, Id = Guid.NewGuid() // Id is also provided by the USI value mapper }; _suppliedPersonIdentifiers = new List <PersonIdentifiersValueMap> { new PersonIdentifiersValueMap { UniqueId = Guid.NewGuid() .ToString(), Usi = 100, Id = Guid.NewGuid() }, new PersonIdentifiersValueMap { UniqueId = Guid.NewGuid() .ToString(), Usi = 101, Id = Guid.NewGuid() } }; A.CallTo(() => _idValueMapper.GetId(A <string> ._, A <string> ._)) .Returns(new PersonIdentifiersValueMap()); A.CallTo(() => _usiValueMapper.GetUsi(A <string> ._, A <string> ._)) .Returns(_suppliedUsiValueMap); A.CallTo(() => _personIdentifiersProvider.GetAllPersonIdentifiers(A <string> ._)) .Returns(Task.Run(() => (IEnumerable <PersonIdentifiersValueMap>)_suppliedPersonIdentifiers)); SetupCaching(); void SetupCaching() { _memoryCacheProvider = new MemoryCacheProvider { MemoryCache = new MemoryCache(IsolatedForUnitTest) }; _idCache = new PersonUniqueIdToIdCache( _memoryCacheProvider, _edfiOdsInstanceIdentificationProvider, _idValueMapper); _usiCache = new PersonUniqueIdToUsiCache( _memoryCacheProvider, _edfiOdsInstanceIdentificationProvider, _usiValueMapper, _personIdentifiersProvider, TimeSpan.Zero, TimeSpan.Zero, synchronousInitialization: true); PersonUniqueIdToUsiCache.GetCache = () => _usiCache; } }
protected override void Arrange() { _edfiOdsInstanceIdentificationProvider = Stub <IEdFiOdsInstanceIdentificationProvider>(); _idValueMapper = Stub <IUniqueIdToIdValueMapper>(); _usiValueMapper = Stub <IUniqueIdToUsiValueMapper>(); _personIdentifiersProvider = Stub <IPersonIdentifiersProvider>(); // usi value mapper _suppliedUsiValueMap = new PersonIdentifiersValueMap { UniqueId = Guid.NewGuid() .ToString(), Usi = 10 }; A.CallTo(() => _usiValueMapper.GetUsi(A <string> ._, A <string> ._)) .Returns(_suppliedUsiValueMap); // id value mapper _suppliedIdValueMap = new PersonIdentifiersValueMap { UniqueId = _suppliedUsiValueMap.UniqueId, // Same uniqueId Id = Guid.NewGuid() }; A.CallTo(() => _idValueMapper.GetId(A <string> ._, A <string> ._)) .Returns(_suppliedIdValueMap); _suppliedPersonIdentifiersValueMap = new PersonIdentifiersValueMap { UniqueId = Guid.NewGuid() .ToString(), Usi = 100 }; A.CallTo(() => _personIdentifiersProvider.GetAllPersonIdentifiers(A <string> ._)) .Returns( Task.Run( () => { //Force slight delay during initialization to mimic real behavior. Thread.Sleep(10); return ((IEnumerable <PersonIdentifiersValueMap>) new[] { _suppliedPersonIdentifiersValueMap }); } )); SetupCaching(); void SetupCaching() { _memoryCacheProvider = new MemoryCacheProvider { MemoryCache = new MemoryCache(IsolatedForUnitTest) }; _idCache = new PersonUniqueIdToIdCache( _memoryCacheProvider, _edfiOdsInstanceIdentificationProvider, _idValueMapper); _usiCache = new PersonUniqueIdToUsiCache( _memoryCacheProvider, _edfiOdsInstanceIdentificationProvider, _usiValueMapper, _personIdentifiersProvider, TimeSpan.Zero, TimeSpan.Zero, synchronousInitialization: false); } }