public void Create_Valid_RedirectsToIndex()
        {
            // ARRANGE
            var mock = new Mock <Repository <Asset> >();

            mock.Setup(r => r.Create(It.IsAny <Asset>())).
            Returns(new Asset
            {
                AssetId = 1,
                Model   = "123"
            });

            AssetViewModel avm = new AssetViewModel
            {
                AssetId = 1,
                Model   = "123"
            };
            AssetService assetService = new AssetService(string.Empty);

            assetService.Repository = mock.Object;
            AssetItemsController controller = new AssetItemsController();

            controller.AssetService = assetService;

            // ACT
            RedirectToRouteResult result = controller.Create(avm) as RedirectToRouteResult;

            // ASSERT
            Assert.AreEqual("action", result.RouteValues.Keys.First());
            Assert.AreEqual("Index", result.RouteValues.Values.First());
        }
        public void Create_InValidModelState_ReturnsErrors()
        {
            // ARRANGE
            var          mock         = new Mock <Repository <Asset> >();
            AssetService assetService = new AssetService(string.Empty);

            assetService.Repository = mock.Object;

            AssetViewModel avm = new AssetViewModel();

            AssetItemsController controller = new AssetItemsController();

            controller.AssetService = assetService;

            controller.ModelState.Clear();
            controller.ModelState.AddModelError("Model is a required field", "Test Exception");
            // ACT
            ViewResult result = controller.Create(avm) as ViewResult;

            // ASSERT
            Assert.AreEqual(EnumHelper.Alerts.Error.ToString(), result.TempData.Keys.First());
        }