public void ShouldReturnErrorWhenCommandIsInvalid()
        {
            var command = new CreateComparisonCommand();

            command.Validate();
            Assert.IsTrue(command.Invalid);
        }
        public void ShouldReturnErrorWhenCommandIsValid()
        {
            var command = new CreateComparisonCommand();

            command.Consumption = 3500;
            command.Validate();
            Assert.IsTrue(command.Valid);
        }
        public void ShouldReturnErrorWhenIsInvalid()
        {
            // I'm not informing the consumption for the command, neither the repository for the handler.
            var command = new CreateComparisonCommand();
            var handler = new ComparisonHandler(null);
            var result  = handler.Handle(command);

            Assert.IsTrue(handler.Invalid);
        }
        public void ShouldReturnSuccessWhenIsValid()
        {
            // Valid comparison using the fake repository
            var command = new CreateComparisonCommand();

            command.Consumption = 3500;
            var handler = new ComparisonHandler(new FakeProductRepository());
            var result  = handler.Handle(command);

            Assert.IsTrue(handler.Valid);
        }
    public ActionResult Get(int consumption)
    {
        // Creating the command
        var command = new CreateComparisonCommand();

        command.Consumption = consumption;

        // Creating the handler
        var result = _handler.Handle(command);

        // Handler validation
        if (_handler.Invalid)
        {
            // Error result
            return(BadRequest(result));
        }

        //Success result
        return(Ok(_handler.Handle(command)));
    }