public static TOwner Satisfy <TData, TOwner>(this IDataVerificationProvider <IEnumerable <IDataProvider <TData, TOwner> >, TOwner> should, Predicate <IEnumerable <TData> > predicate, string message, params TData[] args) where TOwner : PageObject <TOwner> { should.CheckNotNull(nameof(should)); predicate.CheckNotNull(nameof(predicate)); string expectedMessage = (args != null && args.Any()) ? message?.FormatWith(CollectionToString(args)) : message; string verificationConstraintMessage = $"{should.GetShouldText()} {expectedMessage}"; AtataContext.Current.Log.Start(new VerificationLogSection(should.DataProvider.Component, should.DataProvider.ProviderName, verificationConstraintMessage)); IEnumerable <TData> actual = null; bool doesSatisfy = AtataContext.Current.Driver.Try().Until( _ => { actual = should.DataProvider.Value?.Select(x => x.Value).ToArray(); return(predicate(actual) != should.IsNegation); }, should.Timeout, should.RetryInterval); if (!doesSatisfy) { throw should.CreateAssertionException(expectedMessage, CollectionToString(actual)); } AtataContext.Current.Log.EndSection(); return(should.Owner); }
private static AssertionException CreateAssertionException <TData, TOwner>(IDataVerificationProvider <TData, TOwner> should, TData actual, string message, params TData[] args) where TOwner : PageObject <TOwner> { return(should.CreateAssertionException( message.FormatWith(args?.Select(x => ObjectToString(x)).ToArray()), ObjectToString(actual))); }
private static Exception CreateAssertionException <TData, TOwner>(IDataVerificationProvider <TData, TOwner> should, TData actual, string message, params TData[] args) where TOwner : PageObject <TOwner> { string formattedMessage = args != null && args.Any() ? message.FormatWith(args.Select(x => ObjectToString(x)).ToArray()) : message; return(should.CreateAssertionException(formattedMessage, ObjectToString(actual))); }