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 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)));
        }