private void paginateWithIntervalsOf(int interval)
        {
            List <VialDto> listVialDto = (List <VialDto>)outputVialDto.getResponse();

            int rows          = listVialDto.Count;
            int paginatedRows = 0;
            int intervalCount = 0;

            while (rows > 0)
            {
                int start = paginatedRows;

                OutputVialDto output = getOutputVialDtoWithSubListOfVialDto(start, interval, listVialDto);

                consoleVialView.execute(output);

                if (rows >= interval)
                {
                    rows -= interval;

                    intervalCount++;
                    paginatedRows = interval * intervalCount;

                    if (rows < interval)
                    {
                        interval = rows;
                    }
                }
            }
        }
        public void when_the_input_is_correct_then_it_should_return_a_successfull_response()
        {
            List <VialDto> list = new List <VialDto>();

            list.Add(expectedVial);

            Output output = new OutputVialDto(list,
                                              ApplicationConstants.Status.SUCCESS,
                                              "Operation ran successfully");

            OutputVialDto expectedOutput = (OutputVialDto)output;

            InputDto inputDto = new InputDto("vial-test.csv");

            ManageInput manageInput = new FileController(inputDto);

            Output        result       = manageInput.execute();
            OutputVialDto resultOutput = (OutputVialDto)result;

            VialDto resultVial = ((List <VialDto>)resultOutput.getResponse())[0];

            Assert.IsNotNull(result);
            Assert.AreEqual(expectedVial.N_sheet, resultVial.N_sheet);
            Assert.AreEqual(expectedVial.ObjectType, resultVial.ObjectType);
            Assert.AreEqual(expectedVial.IdSection, resultVial.IdSection);
            Assert.AreEqual(expectedVial.PathType, resultVial.PathType);
            Assert.AreEqual(expectedVial.Lenght, resultVial.Lenght);

            Assert.AreEqual(expectedOutput.getResponseStatus(), resultOutput.getResponseStatus());
            Assert.AreEqual(expectedOutput.getMessage(), resultOutput.getMessage());
        }
        public void when_the_path_is_not_correct_then_it_should_return_an_error_response()
        {
            List <VialDto> list = new List <VialDto>();

            list.Add(expectedVial);
            String fileName        = "vial-tst.csv";
            String expectedMessage = "There was an exception while trying to access the data. Message: Could not find file '" +
                                     Path.GetFullPath(ApplicationConstants.Resources.VIAL_CSV_FOLDER + "\\" + fileName) + "'.";
            Output output = new OutputVialDto(
                new List <VialDto>(),
                ApplicationConstants.Status.ERROR,
                expectedMessage);

            OutputVialDto expectedOutput = (OutputVialDto)output;

            String absolutePath = Path.GetFullPath(ApplicationConstants.Resources.VIAL_CSV_FOLDER +
                                                   "\\" + fileName);

            InputAdapterDto inputDto = new InputAdapterDto();

            inputDto.Path = absolutePath;

            Interactor interactor = new FileVialReader();

            Output        result       = interactor.execute(inputDto);
            OutputVialDto resultOutput = (OutputVialDto)result;

            Assert.IsNotNull(result);
            Assert.AreEqual(expectedOutput.getResponseStatus(), resultOutput.getResponseStatus());
            Assert.AreEqual(expectedOutput.getMessage(), resultOutput.getMessage());
        }
        public void execute(Output output)
        {
            consoleVialView = new ConsoleVialView();

            outputVialDto = (OutputVialDto)output;

            evaluateResponseStatus();
        }
        private OutputVialDto getOutputVialDtoWithSubListOfVialDto(int start, int interval,
                                                                   List <VialDto> listVialDto)
        {
            List <VialDto> subList = listVialDto.GetRange(start, interval);
            OutputVialDto  output  = new OutputVialDto(subList, outputVialDto.getResponseStatus(),
                                                       outputVialDto.getMessage());

            output.AdditionalInformation.Add(ApplicationConstants.DtoKey.HEADER, new HeaderVialDto());

            return(output);
        }
        public void when_the_input_is_not_correct_then_it_should_return_an_error_response()
        {
            List <VialDto> list = new List <VialDto>();

            list.Add(expectedVial);

            Output output = new OutputVialDto(
                new List <VialDto>(),
                ApplicationConstants.Status.ERROR,
                "The given file name does not exist");

            OutputVialDto expectedOutput = (OutputVialDto)output;

            InputDto inputDto = new InputDto("starwars.csv");

            ManageInput manageInput = new FileController(inputDto);

            Output        result       = manageInput.execute();
            OutputVialDto resultOutput = (OutputVialDto)result;

            Assert.IsNotNull(result);
            Assert.AreEqual(expectedOutput.getResponseStatus(), resultOutput.getResponseStatus());
            Assert.AreEqual(expectedOutput.getMessage(), resultOutput.getMessage());
        }
        public void when_the_input_is_correct_then_it_should_return_a_successfull_response()
        {
            List <VialDto> list = new List <VialDto>();

            list.Add(expectedVial);

            Output output = new OutputVialDto(list,
                                              ApplicationConstants.Status.SUCCESS,
                                              "Operation ran successfully");

            OutputVialDto expectedOutput = (OutputVialDto)output;

            String absolutePath = Path.GetFullPath(ApplicationConstants.Resources.VIAL_CSV_FOLDER +
                                                   "\\" + "vial-test.csv");

            InputAdapterDto inputDto = new InputAdapterDto();

            inputDto.Path = absolutePath;

            Interactor interactor = new FileVialReader();

            Output        result       = interactor.execute(inputDto);
            OutputVialDto resultOutput = (OutputVialDto)result;

            VialDto resultVial = ((List <VialDto>)resultOutput.getResponse())[0];

            Assert.IsNotNull(result);
            Assert.AreEqual(expectedVial.N_sheet, resultVial.N_sheet);
            Assert.AreEqual(expectedVial.ObjectType, resultVial.ObjectType);
            Assert.AreEqual(expectedVial.IdSection, resultVial.IdSection);
            Assert.AreEqual(expectedVial.PathType, resultVial.PathType);
            Assert.AreEqual(expectedVial.Lenght, resultVial.Lenght);

            Assert.AreEqual(expectedOutput.getResponseStatus(), resultOutput.getResponseStatus());
            Assert.AreEqual(expectedOutput.getMessage(), resultOutput.getMessage());
        }