public void RegisterPortCall_ReturnsJsonResult()
        {
            using (var factory = new ContextFactory())
            {
                using (var context = factory.CreateContext())
                {
                    // Arrange
                    var seedContext = SeedContext(context);
                    var controller  = new PortCallController(seedContext);
                    var portCall    = new PortCall {
                        PortCallStatusId = 1, ShipId = 1, LocationId = 1
                    };

                    // Act
                    var result = controller.RegisterPortCall(portCall);

                    // Assert
                    var jsonResult = Assert.IsType <JsonResult>(result);
                }
            }
        }
        public void RegisterPortCall_ReturnsBadRequest_WhenForeignKeyConstraintFails()
        {
            using (var factory = new ContextFactory())
            {
                using (var context = factory.CreateContext())
                {
                    // Arrange
                    var seedContext = SeedContext(context);
                    var controller  = new PortCallController(seedContext);
                    var PortCall    = new PortCall {
                        PortCallStatusId = -1
                    };

                    // Act
                    var result = controller.RegisterPortCall(PortCall);

                    // Assert
                    var badRequestResult = Assert.IsType <BadRequestObjectResult>(result);
                    Assert.IsType <DbUpdateException>(badRequestResult.Value);
                }
            }
        }
        public void RegisterPortCall_ReturnsBadRequest_WhenModelStateIsInvalid()
        {
            using (var factory = new ContextFactory())
            {
                using (var context = factory.CreateContext())
                {
                    // Arrange
                    var seedContext = SeedContext(context);
                    var controller  = new PortCallController(seedContext);
                    controller.ModelState.AddModelError("Name", "Required");
                    var portCall = new PortCall {
                        PortCallStatusId = 1, ShipId = 1, LocationId = 1
                    };

                    // Act
                    var result = controller.RegisterPortCall(portCall);

                    // Assert
                    var badRequestResult = Assert.IsType <BadRequestObjectResult>(result);
                    Assert.IsType <SerializableError>(badRequestResult.Value);
                }
            }
        }