public void DeleteGraduationTest()
        {
            // Arrange
            var uow        = new UnitOfWorkFakeFactory().Uow.Object;
            var controller = new IntroductionController(uow);

            var expectedList = new List <Grade>(uow.GradesRepository.Get().ToList());
            var idToRemove   = expectedList.Last().Id;

            expectedList.RemoveAll(x => x.Id == idToRemove);

            // Act
            var expected = new GraduationsModel {
                Graduations = expectedList
            };
            var result = controller.DeleteGraduation(idToRemove) as RedirectToRouteResult;

            // Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(result.RouteValues["action"], nameof(IntroductionController.ShowGraduations));
            AssertExtension.CompareIEnumerable(expected.Graduations, uow.GradesRepository.Get().ToList(),
                                               (x, y) => x.ObtainingDateTime == y.ObtainingDateTime &&
                                               x.Id == y.Id
                                               &&
                                               AssertExtension.CompareIEnumerable(x.Texts, y.Texts,
                                                                                  (a, b) => a.Language == b.Language && a.Value == b.Value)
                                               );
        }
        public void ShowGraduationTest()
        {
            // Act
            var uow        = new UnitOfWorkFakeFactory().Uow.Object;
            var controller = new IntroductionController(uow);

            var result = controller.ShowGraduations() as ViewResult;

            var expected = new GraduationsModel {
                Graduations = uow.GradesRepository.Get().ToList()
            };

            // Assert
            Assert.IsNotNull(result);
            AssertExtension.PropertyValuesAreEquals(expected, result.Model);
        }