public async Task WhenNoUserIdsPassed_ItShouldDoNothing()
        {
            await this.DatabaseTestAsync(async testDatabase =>
            {
                this.target = new IncrementPaymentStatusDbStatement(testDatabase);
                await this.CreateDataAsync(testDatabase);
                await testDatabase.TakeSnapshotAsync();

                await this.target.ExecuteAsync(new List <UserId>());

                return(ExpectedSideEffects.None);
            });
        }
        public async Task WhenUserIdsPassedIn_ItShouldUpdateData()
        {
            await this.DatabaseTestAsync(async testDatabase =>
            {
                this.target = new IncrementPaymentStatusDbStatement(testDatabase);
                await this.CreateDataAsync(testDatabase);
                await testDatabase.TakeSnapshotAsync();

                await this.target.ExecuteAsync(UserIdsToUpdate);

                return(new ExpectedSideEffects
                {
                    Updates = new List <IIdentityEquatable>
                    {
                        new UserPaymentOrigin(
                            UserId2.Value,
                            null,
                            PaymentOriginKey,
                            PaymentOriginKeyType,
                            CountryCode,
                            CreditCardPrefix,
                            IpAddress,
                            TaxamoTransactionKey,
                            PaymentStatus.Retry1),
                        new UserPaymentOrigin(
                            UserId3.Value,
                            null,
                            PaymentOriginKey,
                            PaymentOriginKeyType,
                            CountryCode,
                            CreditCardPrefix,
                            IpAddress,
                            TaxamoTransactionKey,
                            PaymentStatus.Failed),
                    }
                });
            });
        }
 public void Initialize()
 {
     this.target = new IncrementPaymentStatusDbStatement(new Mock <FifthweekDbConnectionFactory>(MockBehavior.Strict).Object);
 }