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)));
 }
Exemplo n.º 3
0
        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)));
        }