public void TestAtCompareReturnererValueLowerThanZeroHvisNyhedsudgivelsestidspunktOnXErGreaterThanNyhedsudgivelsestidspunktOnY()
        {
            var fixture = new Fixture();

            fixture.Customize <DateTime>(e => e.FromFactory(() => DateTime.Now));

            var dato = fixture.Create <DateTime>();
            var x    = MockRepository.GenerateMock <INyhedViewModel>();

            x.Expect(m => m.Nyhedsudgivelsestidspunkt)
            .Return(dato)
            .Repeat.Any();

            var y = MockRepository.GenerateMock <INyhedViewModel>();

            y.Expect(m => m.Nyhedsudgivelsestidspunkt)
            .Return(dato.AddDays(-7))
            .Repeat.Any();

            var comparer = new NyhedViewModelComparer();

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

            var result = comparer.Compare(x, y);

            Assert.That(result, Is.LessThan(0));

            x.AssertWasCalled(m => m.Nyhedsudgivelsestidspunkt, opt => opt.Repeat.Times(1));
            x.AssertWasNotCalled(m => m.Nyhedsaktualitet);
            y.AssertWasCalled(m => m.Nyhedsudgivelsestidspunkt, opt => opt.Repeat.Times(1));
            y.AssertWasNotCalled(m => m.Nyhedsaktualitet);
        }
        public void TestAtCompareKasterArgumentNullExceptionHvisYErNull()
        {
            var fixture = new Fixture();

            fixture.Customize <INyhedViewModel>(e => e.FromFactory(() => MockRepository.GenerateMock <INyhedViewModel>()));

            var comparer = new NyhedViewModelComparer();

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

            // ReSharper disable ReturnValueOfPureMethodIsNotUsed
            Assert.Throws <ArgumentNullException>(() => comparer.Compare(fixture.Create <INyhedViewModel>(), null));
            // ReSharper restore ReturnValueOfPureMethodIsNotUsed
        }
        public void TestAtCompareReturnererCompareResultHvisNyhedsudgivelsestidspunktOnXEqualsNyhedsudgivelsestidspunktOnYOgNyhedsaktualitetOnXEqualsNyhedsaktualitetOnY(string xDate, string yDate, int expectCompareResult)
        {
            var fixture = new Fixture();

            fixture.Customize <DateTime>(e => e.FromFactory(() => DateTime.Now));

            var x = MockRepository.GenerateMock <INyhedViewModel>();

            x.Expect(m => m.Nyhedsudgivelsestidspunkt)
            .Return(DateTime.Parse(xDate, new CultureInfo("en-US")))
            .Repeat.Any();
            x.Expect(m => m.Nyhedsaktualitet)
            .Return(Nyhedsaktualitet.Medium)
            .Repeat.Any();

            var y = MockRepository.GenerateMock <INyhedViewModel>();

            y.Expect(m => m.Nyhedsudgivelsestidspunkt)
            .Return(DateTime.Parse(yDate, new CultureInfo("en-US")))
            .Repeat.Any();
            y.Expect(m => m.Nyhedsaktualitet)
            .Return(Nyhedsaktualitet.Medium)
            .Repeat.Any();

            var comparer = new NyhedViewModelComparer();

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

            var result = comparer.Compare(x, y);

            Assert.That(result, Is.EqualTo(expectCompareResult));

            x.AssertWasCalled(m => m.Nyhedsudgivelsestidspunkt, opt => opt.Repeat.Times(2));
            x.AssertWasCalled(m => m.Nyhedsaktualitet);
            y.AssertWasCalled(m => m.Nyhedsudgivelsestidspunkt, opt => opt.Repeat.Times(2));
            y.AssertWasCalled(m => m.Nyhedsaktualitet);
        }
        public void TestAtConstructorInitiererNyhedViewModelComparer()
        {
            var comparer = new NyhedViewModelComparer();

            Assert.That(comparer, Is.Not.Null);
        }