/// <summary> /// instantiates an instance of <see cref="ExpressionActionProvider"/> /// </summary> /// <param name="postcode">the postcode client</param> public ExpressionActionProvider( ICreatePostcodeClients factory, IStoreLocalAuthorities authorityProvider) { It.IsNull(factory) .AsGuard <ArgumentNullException>(nameof(factory)); It.IsNull(authorityProvider) .AsGuard <ArgumentNullException>(nameof(authorityProvider)); Postcode = factory.CreateClient(); Authority = authorityProvider; ActionMap = new Dictionary <TypeOfExpression, Func <string, IScopeLoggingContext, Task <string> > >() { [TypeOfExpression.Town] = GetTouchpointIDFromTown, [TypeOfExpression.Outward] = GetTouchpointIDFromOutwardCode, [TypeOfExpression.Postcode] = GetTouchpointIDFromPostcode }; }
/// <summary> /// make (a) 'system under test' /// </summary> /// <param name="factory">the postcodes client factory</param> /// <param name="authorities">the authorities store</param> /// <returns>the system under test</returns> internal ExpressionActionProvider MakeSUT( ICreatePostcodeClients factory, IStoreLocalAuthorities authorities) => new ExpressionActionProvider(factory, authorities);