public void TestThatPaymentReceiptSetterChangeValueToNull()
        {
            var fixture = new Fixture();
            var random  = new Random(fixture.Create <int>());

            var payment = new MyPayment(DomainObjectMockBuilder.BuildStakeholderMock(), DomainObjectMockBuilder.BuildDataProviderMock(true), DateTime.Now.AddDays(random.Next(1, 7) * -1).AddMinutes(random.Next(120, 240)), fixture.Create <string>(), fixture.CreateMany <byte>(random.Next(1024, 4096)).ToArray());

            Assert.That(payment, Is.Not.Null);
            Assert.That(payment.PaymentReceipt, Is.Not.Null);
            Assert.That(payment.PaymentReceipt, Is.Not.Empty);

            payment.PaymentReceipt = null;
            Assert.That(payment.PaymentReceipt, Is.Null);
        }
        public void TestThatTranslateThrowsArgumentNullExceptionWhenTranslationCultureIsNull()
        {
            var fixture = new Fixture();
            var random  = new Random(fixture.Create <int>());

            var payment = new MyPayment(DomainObjectMockBuilder.BuildStakeholderMock(), DomainObjectMockBuilder.BuildDataProviderMock(true), DateTime.Now.AddDays(random.Next(1, 7) * -1).AddMinutes(random.Next(120, 240)), fixture.Create <string>());

            Assert.That(payment, Is.Not.Null);

            var exception = Assert.Throws <ArgumentNullException>(() => payment.Translate(null));

            Assert.That(exception, Is.Not.Null);
            Assert.That(exception.ParamName, Is.Not.Null);
            Assert.That(exception.ParamName, Is.Not.Empty);
            Assert.That(exception.ParamName, Is.EqualTo("translationCulture"));
            Assert.That(exception.InnerException, Is.Null);
        }
        public void TestThatCreationTimeSetterChangeValue()
        {
            var fixture = new Fixture();
            var random  = new Random(fixture.Create <int>());

            var payment = new MyPayment(DomainObjectMockBuilder.BuildStakeholderMock(), DomainObjectMockBuilder.BuildDataProviderMock(true), DateTime.Now.AddDays(random.Next(1, 7) * -1).AddMinutes(random.Next(120, 240)), fixture.Create <string>());

            Assert.That(payment, Is.Not.Null);
            Assert.That(payment.CreationTime, Is.EqualTo(DateTime.Now).Within(3).Seconds);

            var newCreationTime = DateTime.Now.AddDays(random.Next(1, 7) * -1);

            Assert.That(newCreationTime, Is.Not.EqualTo(payment.CreationTime));

            payment.CreationTime = newCreationTime;
            Assert.That(payment.CreationTime, Is.EqualTo(newCreationTime));
        }
        public void TestThatTranslateCallsTranslateOnDataProvider()
        {
            var fixture          = new Fixture();
            var random           = new Random(fixture.Create <int>());
            var dataProviderMock = DomainObjectMockBuilder.BuildDataProviderMock(true);

            var payment = new MyPayment(DomainObjectMockBuilder.BuildStakeholderMock(), dataProviderMock, DateTime.Now.AddDays(random.Next(1, 7) * -1).AddMinutes(random.Next(120, 240)), fixture.Create <string>());

            Assert.That(payment, Is.Not.Null);
            Assert.That(payment.DataProvider, Is.Not.Null);
            Assert.That(payment.DataProvider, Is.EqualTo(dataProviderMock));

            var translationCulture = CultureInfo.CurrentCulture;

            payment.Translate(translationCulture);

            dataProviderMock.AssertWasCalled(m => m.Translate(Arg <CultureInfo> .Is.Equal(translationCulture)));
        }
        public void TestThatPaymentReferenceSetterChangeValue()
        {
            var fixture = new Fixture();
            var random  = new Random(fixture.Create <int>());

            var payment = new MyPayment(DomainObjectMockBuilder.BuildStakeholderMock(), DomainObjectMockBuilder.BuildDataProviderMock(true), DateTime.Now.AddDays(random.Next(1, 7) * -1).AddMinutes(random.Next(120, 240)), fixture.Create <string>());

            Assert.That(payment, Is.Not.Null);
            Assert.That(payment.PaymentReference, Is.Not.Null);
            Assert.That(payment.PaymentReference, Is.Not.Empty);

            var newPaymentReference = fixture.Create <string>();

            Assert.That(newPaymentReference, Is.Not.Null);
            Assert.That(newPaymentReference, Is.Not.Empty);
            Assert.That(newPaymentReference, Is.Not.EqualTo(payment.PaymentReference));

            payment.PaymentReference = newPaymentReference;
            Assert.That(payment.PaymentReference, Is.Not.Null);
            Assert.That(payment.PaymentReference, Is.Not.Empty);
            Assert.That(payment.PaymentReference, Is.EqualTo(newPaymentReference));
        }