public void Create_Get_Should_Return_View()
        {
            // arrange
            ConnectionController connectionController = new ConnectionController(new FakeConnectionRepository());

            // act
            ViewResult viewResult = connectionController.Create() as ViewResult;

            // assert
            Assert.IsNotNull(viewResult);
        }
        public void Create_Post_Should_Not_Create_Connection_When_Invalid()
        {
            // arrange
            FakeConnectionRepository connectionRepository = new FakeConnectionRepository();
            ConnectionController connectionController = new ConnectionController(connectionRepository);

            FormCollection formCollection = new FormCollection();
            connectionController.ValueProvider = formCollection.ToValueProvider();

            // act
            ViewResult viewResult = connectionController.Create(formCollection) as ViewResult;

            // assert
            Assert.IsTrue(connectionRepository.Count == 0);
        }
        public void Create_Post_Should_Create_Connection_When_Valid()
        {
            // arrange
            FakeConnectionRepository connectionRepository = new FakeConnectionRepository();
            ConnectionController connectionController = new ConnectionController(connectionRepository);

            FormCollection formCollection = new FormCollection();
            formCollection["Name"] = "connection1";
            formCollection["ConnectionParameterKey1"] = "key1";
            formCollection["ConnectionParameterValue1"] = "value1";

            connectionController.ValueProvider = formCollection.ToValueProvider();

            // act
            ViewResult viewResult = connectionController.Create(formCollection) as ViewResult;

            // assert
            Assert.IsTrue(connectionRepository.Count == 1);
        }
        public void Create_Post_Should_Redisplay_With_Errors_When_Invalid()
        {
            // arrange
            FakeConnectionRepository connectionRepository = new FakeConnectionRepository();
            ConnectionController connectionController = new ConnectionController(connectionRepository);

            FormCollection formCollection = new FormCollection();
            connectionController.ValueProvider = formCollection.ToValueProvider();

            // act
            ViewResult viewResult = connectionController.Create(formCollection) as ViewResult;

            // assert
            Assert.IsTrue(viewResult.ViewData.Model is ConnectionModel);
            Assert.IsTrue(viewResult.ViewData.ModelState["Name"].Errors.Count > 0);
        }
        public void Create_Post_Should_Redisplay_With_Errors_When_Duplicate_Name()
        {
            // arrange
            FakeConnectionRepository connectionRepository = new FakeConnectionRepository();
            connectionRepository.AddConnection(new ConnectionModel() { ConnectionId = 1, Name = "connection1" });

            FormCollection formCollection = new FormCollection();
            formCollection["Name"] = "connection1";
            formCollection["ConnectionParameterKey1"] = "key1";
            formCollection["ConnectionParameterValue1"] = "value1";

            ConnectionController connectionController = new ConnectionController(connectionRepository);
            connectionController.ValueProvider = formCollection.ToValueProvider();

            // act
            ViewResult viewResult = connectionController.Create(formCollection) as ViewResult;

            // assert
            Assert.IsTrue(viewResult.ViewData.ModelState["Name"].Errors.Count == 1);
        }