protected static Func <ISession <PrivateAuthentication>, ITest, Task <IReadOnlyDictionary <object, FieldPropertyCollection> > > CreateFields(Func <CreateFieldsRequest> createRequestFunction, IEnumerable <FieldProperty> select) { return(async(session, test) => { CreateFieldsRequest request = createRequestFunction(); var fields = await session.CallAsync(FieldRequest.CreateFields(request)); Assume.That(fields.FieldFailed, Has.Count.EqualTo(0)); var mapping = fields.FieldSuccess.ToDictionary(entry => entry.Value, entry => entry.Key); return (await session.CallAsync(FieldRequest.GetFields().Select(select).WhereGuid(fields.FieldSuccess.Values))) .ToDictionary(fieldEntry => mapping[fieldEntry.Value.Guid], fieldEntry => fieldEntry.Value); }); }
public HrbcFieldCreator(CreateFieldsRequest request, IEnumerable <FieldProperty> select) : base(CreateFields(request, select), DeleteFields) { }
public HrbcDeletedFieldCreator(CreateFieldsRequest request, IEnumerable <FieldProperty> select) : base(BeforeTest(request, select), Nop) { }
private static Func <ISession <PrivateAuthentication>, ITest, Task <IReadOnlyDictionary <object, FieldPropertyCollection> > > BeforeTest(CreateFieldsRequest request, IEnumerable <FieldProperty> select) { return(async(session, test) => { var result = await CreateFields(request, select)(session, test); await DeleteFields(session, test, result); return result; }); }