private void AssertReferencesEqual(PaymentProcessingData expected, PaymentProcessingData actual, bool withChannels = true)
        {
            Assert.AreEqual(expected, actual);
            Assert.AreSame(expected.SubscriberChannelsSnapshots, actual.SubscriberChannelsSnapshots);
            Assert.AreSame(expected.SubscriberSnapshots, actual.SubscriberSnapshots);
            Assert.AreSame(expected.CalculatedAccountBalanceSnapshots, actual.CalculatedAccountBalanceSnapshots);
            Assert.AreSame(expected.CreatorChannelsSnapshots, actual.CreatorChannelsSnapshots);
            Assert.AreSame(expected.CreatorFreeAccessUsersSnapshots, actual.CreatorFreeAccessUsersSnapshots);

            if (withChannels)
            {
                Assert.AreSame(expected.CreatorPosts, actual.CreatorPosts);
            }

            Assert.AreSame(expected.CreatorPercentageOverride, actual.CreatorPercentageOverride);
        }
 private void VerifyResult(PaymentProcessingData result, UserId subscriberId, UserId creatorId, DateTime startTime, DateTime endTime, bool withChannels = true)
 {
     this.AssertReferencesEqual(
         new PaymentProcessingData(
             subscriberId,
             creatorId,
             startTime,
             endTime,
             CommittedAccountBalance,
             SubscriberChannelsSnapshots,
             SubscriberSnapshots,
             CalculatedAccountBalanceSnapshots,
             withChannels ? CreatorChannelsSnapshotsWithChannels : CreatorChannelsSnapshots,
             CreatorFreeAccessUsersSnapshots,
             withChannels ? CreatorPosts : new List <CreatorPost>(),
             CreatorPercentageOverride),
         result,
         withChannels);
 }