public void SchemaSource_httpPost_when_model_schemadefinitionfromurl_is_null_returns_redirect_to_action_Create()
        {
            //arrange
            var nameValueCollection = new NameValueCollection()
            {
            };

            nameValueCollection.Add("useUrl", "yes");
            var mockRequestBase = new Mock <HttpRequestBase>();

            //mockRequestBase.Setup(x => x.Params).Returns(nameValueCollection);
            mockRequestBase.SetReturnsDefault(nameValueCollection);
            _mockHttpContextBase.SetupGet(x => x.Request).Returns(mockRequestBase.Object);


            var controller = new SchemaController(_esdFunctionService, _dataShareSchemaImportService, _datasetSchemaService,
                                                  _dataSetSchemaColumnService, _categoryService, _systemConfigurationService);

            controller.ControllerContext = new ControllerContext(_mockHttpContextBase.Object, new RouteData(), controller);
            var model = new SchemaSourceViewModel()
            {
                SchemaDefinitionFromUrl = null
            };
            //act
            var result = (RedirectToRouteResult)controller.SchemaSource(model, "categoryname");

            //assert
            Assert.AreEqual("Create", result.RouteValues["action"]);
            //cleanup
        }
      public ActionResult SchemaSource(SchemaSourceViewModel model, string categoryName)
      {
          if (Request["useUrl"] != "yes")
          {
              return(RedirectToAction("Create"));
          }

          if (String.IsNullOrEmpty(model.SchemaDefinitionFromUrl))
          {
              return(RedirectToAction("Create"));
          }

          if (!ModelState.IsValid)
          {
              return(RedirectToAction("SchemaSource"));
          }

          var schema = new DataSetSchema()
          {
              Category = _categoryService.Get(categoryName)
              , IsStandardisedSchemaUrl = model.IsStandardisedSchemaUrl
              , SchemaDefinitionFromUrl = model.SchemaDefinitionFromUrl
          };

          var resultImport = _dataShareSchemaImportService.ImportFromUrl(schema);

          TempData["SchemaSourceErrorMessage"] = resultImport.ErrorMessage;
          if (!String.IsNullOrEmpty(resultImport.ErrorMessage))
          {
              return(RedirectToAction("SchemaSource"));
          }

          TempData["SchemaSourceErrorMessage"] = null;

          schema = resultImport.DataSetSchema;
          //save esd links
          SaveEsdLinks(schema);
          return(RedirectToAction("Edit", new { categoryName = schema.Category.FriendlyUrl, schemaName = schema.FriendlyUrl }));
      }
        public void SchemaSource_httpPost_when_request_use_url_not_yes_returns_redirect_to_action_Create()
        {
            //arrange
            var nameValueCollection = new NameValueCollection();

            nameValueCollection.Add("useUrl", "notyest");
            _mockRequestBase.Setup(x => x.Params).Returns(nameValueCollection);
            _mockHttpContextBase.SetupGet(x => x.Request).Returns(_mockRequestBase.Object);
            _mockHttpContextBase.SetupGet(x => x.Response).Returns(_mockResponseBase.Object);


            var controller = new SchemaController(_esdFunctionService, _dataShareSchemaImportService, _datasetSchemaService,
                                                  _dataSetSchemaColumnService, _categoryService, _systemConfigurationService);

            controller.ControllerContext = new ControllerContext(_mockHttpContextBase.Object, new RouteData(), controller);
            var model = new SchemaSourceViewModel();
            //act
            var result = (RedirectToRouteResult)controller.SchemaSource(model, "categoryname");

            //assert
            Assert.AreEqual("Create", result.RouteValues["action"]);
            //cleanup
        }