Example #1
0
        public void GetDebts_OneBoughtAndOneConsumed_ShouldAccountToConsumer()
        {
            var total    = fixture.Create <decimal>();
            var sponsor  = fixture.Build <Participation>().With(p => p.Amount, total).Create();
            var consumer = fixture.Build <Participation>().With(p => p.Amount, total).Create();
            var good     = GoodWithConsumers(new[] { consumer }, total);
            var action   =
                fixture.Build <Action>().With(a => a.Goods, new[] { good }).With(a => a.Sponsors, new[] { sponsor }).Create();

            var actual = sut.GetDebts(new[] { action });

            Assert.That(actual.Count(), Is.EqualTo(1));
            Assert.That(actual.Single().Creditor, Is.EqualTo(sponsor.Participant));
            Assert.That(actual.Single().Debtor, Is.EqualTo(consumer.Participant));
            Assert.That(actual.Single().Amount, Is.EqualTo(total));
        }