public async Task ItShouldReturnRevenueForAllUsers()
        {
            await this.DatabaseTestAsync(async testDatabase =>
            {
                this.target = new GetAllCreatorRevenuesDbStatement(testDatabase);

                var initialResult = await this.target.ExecuteAsync(Now.AddDays(5));

                await this.CreateDataAsync(testDatabase);
                await testDatabase.TakeSnapshotAsync();

                var result = await this.target.ExecuteAsync(Now.AddDays(5));

                CollectionAssert.AreEquivalent(
                    new List <GetAllCreatorRevenuesResult.Creator>
                {
                    new GetAllCreatorRevenuesResult.Creator(
                        UserId1,
                        Days * 2,
                        Days * 4,
                        (Days * 2) - 5,
                        Username1,
                        Email1,
                        EmailConfirmed1),
                    new GetAllCreatorRevenuesResult.Creator(
                        UserId2,
                        Days * 3,
                        Days * 5,
                        (Days * 3) - 10,
                        null,
                        null,
                        false),
                    new GetAllCreatorRevenuesResult.Creator(
                        UserId3,
                        100,
                        0,
                        100,
                        null,
                        null,
                        false)
                },
                    result.Creators.Except(initialResult.Creators).ToList());

                return(ExpectedSideEffects.None);
            });
        }
        public async Task ItShouldReturnNoResultsWhenNoUsersWithRevenue()
        {
            await this.DatabaseTestAsync(async testDatabase =>
            {
                this.target = new GetAllCreatorRevenuesDbStatement(testDatabase);

                var initialResult = await this.target.ExecuteAsync(Now.AddDays(5));

                await testDatabase.TakeSnapshotAsync();

                var result = await this.target.ExecuteAsync(Now.AddDays(5));

                Assert.AreEqual(initialResult.Creators.Count, result.Creators.Count);

                return(ExpectedSideEffects.None);
            });
        }
 public void Initialize()
 {
     this.target = new GetAllCreatorRevenuesDbStatement(new Mock <IFifthweekDbConnectionFactory>(MockBehavior.Strict).Object);
 }