public void Clinics_MasterGrid_Ajax()
        {
            //Arrange
            var cRepository = new Mock<IClinicRepository>();
            var controller = new AdministrationController(cRepository.Object);
            cRepository.Setup(r => r.GetAll()).Returns((new List<Clinic> {
                new Clinic() {Id = 1, Caption = "Clinic1", Doctors = new List<User> {new User {Id = 11}, new User {Id = 12}}},
                new Clinic() {
                    Id = 10,
                    Caption = "Clinic10",
                    Doctors = new List<User> {new User {Id = 101}, new User {Id = 102}, new User {Id = 103}}
                }
            }).AsQueryable());
            EmulateControllerContext(controller, true);

            //Act
            var result = controller.Clinics();

            //Assert
            Assert.That(result, Is.Not.Null);
            Assert.That(result is PartialViewResult);
            var viewResultBase = result as ViewResultBase;
            Assert.That(viewResultBase.Model, Is.Not.Null);
            Assert.That(viewResultBase.ViewName, Is.EqualTo("_Clinics"));
            Assert.That(viewResultBase.Model is ClinicMasterViewModel);
            var model = viewResultBase.Model as ClinicMasterViewModel;
            Assert.That(model.Clinics, Is.Not.Null);
            Assert.That(model.Clinics.Count, Is.EqualTo(2));

            Assert.That(model.Clinics[0].ClinicId, Is.EqualTo(1));
            Assert.That(model.Clinics[0].ClinicName, Is.EqualTo("Clinic1"));
            Assert.That(model.Clinics[0].DoctorsCount, Is.EqualTo(2));

            Assert.That(model.Clinics[1].ClinicId, Is.EqualTo(10));
            Assert.That(model.Clinics[1].ClinicName, Is.EqualTo("Clinic10"));
            Assert.That(model.Clinics[1].DoctorsCount, Is.EqualTo(3));

            cRepository.Verify(r => r.GetAll(), Times.Once());
        }
        public void Clinics_MasterGrid_Empty()
        {
            //Arrange
            var cRepository = new Mock<IClinicRepository>();
            var controller = new AdministrationController(cRepository.Object);
            cRepository.Setup(r => r.GetAll()).Returns((new List<Clinic>()).AsQueryable());
            EmulateControllerContext(controller, true);
            //Act
            var result = controller.Clinics();

            //Assert
            Assert.That(result, Is.Not.Null);
            Assert.That(result is PartialViewResult);
            var viewResultBase = result as ViewResultBase;
            Assert.That(viewResultBase.Model, Is.Not.Null);
            Assert.That(viewResultBase.ViewName, Is.EqualTo("_Clinics"));
            Assert.That(viewResultBase.Model is ClinicMasterViewModel);
            var model = viewResultBase.Model as ClinicMasterViewModel;
            Assert.That(model.Clinics.Count, Is.EqualTo(0));

            cRepository.Verify(r => r.GetAll(), Times.Once());
        }