public async Task Delete_ShouldReturnAnonymousObject_WhenNonExistingIdPassed()
        {
            // Arrange
            var teacherId = 0;

            // Act
            _repoMock.Setup(x => x.GetById(teacherId)).ReturnsAsync((Teacher)null);
            dynamic result = await _controller.Delete(teacherId);

            var valueFromAnnonymous = result.Value.GetType().GetProperty("text").GetValue(result.Value, null);

            // Assert
            Assert.NotNull(result);
            Assert.Equal("Teacher does not exists!", valueFromAnnonymous);
        }
        public void Teachers_Controller_Test_On_Delete_With_Existent_Id()
        {
            //Arrange
            Guid   id          = new Guid("f616cc8c-2223-4145-b7d0-232a1f6f0795");
            string firstName   = "TestF";
            string lastName    = "TestL";
            string userName    = "******";
            string password    = "******";
            string emailAdress = "TestE";

            Teacher expectedTeacher = new Teacher(firstName, lastName, userName, password, emailAdress);

            expectedTeacher.Id = id;

            var repo = Substitute.For <IRepository>();
            var sut  = new TeachersController(repo);

            repo.GetById <Teacher>(id).Returns(expectedTeacher);
            //Act
            var actual = sut.Delete(id).Result as ViewResult;

            //Assert
            Assert.IsInstanceOfType(actual, typeof(ViewResult));
            var viewResult = actual;

            Assert.AreEqual(expectedTeacher, viewResult.Model);
        }
        public void Teachers_Controller_Test_On_Delete_With_Null_Id()
        {
            //Arrange
            var id   = Guid.Empty;
            var repo = Substitute.For <IRepository>();
            var sut  = new TeachersController(repo);

            repo.GetById <Teacher>(id);

            //Act
            var actual = sut.Delete(id).Result;

            //Assert
            Assert.IsInstanceOfType(actual, typeof(NotFoundResult));
        }
        public void Teachers_Controller_Test_On_Delete_With_NonExistent_Id()
        {
            //Arrange
            Guid id   = new Guid("f616cc8c-2223-4145-b7d0-232a1f6f0795");
            var  repo = Substitute.For <IRepository>();
            var  sut  = new TeachersController(repo);

            repo.GetById <Teacher>(id);

            //Act
            var actual = sut.Delete(id).Result;

            //Assert
            Assert.IsInstanceOfType(actual, typeof(NotFoundResult));
        }