public void GetAll_ReturnsPortCallList()
        {
            using (var factory = new ContextFactory())
            {
                using (var context = factory.CreateContext())
                {
                    // Arrange
                    var seedContext  = SeedContext(context);
                    var controller   = new PortCallController(seedContext);
                    var portCallList = seedContext.PortCall.ToList();

                    // Act
                    var result = controller.GetAll();

                    // Assert
                    var portCallListResult = Assert.IsType <List <PortCall> >(result);
                    Assert.Equal(portCallList, portCallListResult);
                }
            }
        }
        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 GetPortCall_ReturnsPortCall()
        {
            using (var factory = new ContextFactory())
            {
                using (var context = factory.CreateContext())
                {
                    // Arrange
                    var seedContext = SeedContext(context);
                    var controller  = new PortCallController(seedContext);
                    var portCall    = seedContext.PortCall.FirstOrDefault();
                    var id          = portCall.PortCallId;

                    // Act
                    var result = controller.GetPortCall(id);

                    // Assert
                    var portCallResult = Assert.IsType <PortCall>(result);
                    Assert.Equal(portCall, portCallResult);
                }
            }
        }
        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);
                }
            }
        }