private bool TryCreateResponse(Exception exception, out Tuple <HttpStatusCode, ContentResult> response)
        {
            response = null;

            switch (exception.GetType().Name)
            {
            case nameof(InvalidFileException):
                var invalidModelException = (InvalidFileException)exception;
                var invalidModel          = new InvalidFileException(invalidModelException.Errors);
                var invalidModelJson      = JsonConvert.SerializeObject(invalidModel.Errors, Formatting.Indented);
                response = CreateErrorResponse(invalidModelJson, contentType: "application/json");

                break;

            case nameof(ValidationException):
                var validationException = (ValidationException)exception;
                var validationJson      = JsonConvert.SerializeObject(
                    validationException.Errors.Select(x => new
                {
                    Item         = x.PropertyName.Split('.')[0],
                    PropertyName = x.PropertyName.Split('.')[1],
                    x.ErrorMessage
                }), Formatting.Indented);
                response = CreateErrorResponse(validationJson, contentType: "application/json");

                break;
            }

            return(response != null);
        }
        public void CanCreateWithMessage()
        {
            const string message   = "Sth.";
            var          exception = new InvalidFileException(message);

            Assert.Equal(message, exception.Message);
        }
        public void CanCreateWithMessageAndNestedException()
        {
            const string message        = "Sth.";
            var          innerException = new InvalidFileException();

            var exception = new InvalidFileException(message, innerException);

            Assert.Equal(message, exception.Message);
            Assert.Equal(innerException, exception.InnerException);
        }
        private static string[] ParseLineValues(string line)
        {
            string[] lineValues = line.Split(new char[] { '\t' }, StringSplitOptions.RemoveEmptyEntries);
            if (lineValues.Length != 3)
            {
                lineValues = line.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
                if (lineValues.Length != 3)
                {
                    throw InvalidFileException.InvalidFile();
                }
            }

            return(lineValues);
        }
Beispiel #5
0
        public void isValid_ShouldThrowAnInvalidFileException_GivenAnUnsupportedFileFormatIsSentInForm()
        {
            Dictionary <string, StringValues> fields = CreateValidFormFields();

            Mock <IFormFile> mockFormFile = new Mock <IFormFile>();

            mockFormFile.Setup(file => file.FileName).Returns("file.txt");
            IFormFileCollection formFiles = new FormFileCollection()
            {
                mockFormFile.Object
            };

            FormCollection form = new FormCollection(fields, formFiles);

            InvalidFileException exception = Assert.Throws <InvalidFileException>(() => validator.isValid(form));

            Assert.Equal("Invalid file format. Accepted formats are: .jpg and .png", exception.Message);
        }
Beispiel #6
0
        public void isValid_ShouldThrowAnInvalidFileException_GivenFileInFormHasMoreThan5MB()
        {
            Dictionary <string, StringValues> fields = CreateValidFormFields();

            Mock <IFormFile> mockFormFile = new Mock <IFormFile>();

            mockFormFile.Setup(file => file.FileName).Returns("file.jpg");
            mockFormFile.Setup(file => file.Length).Returns(6000001);
            IFormFileCollection formFiles = new FormFileCollection()
            {
                mockFormFile.Object
            };

            FormCollection form = new FormCollection(fields, formFiles);

            InvalidFileException exception = Assert.Throws <InvalidFileException>(() => validator.isValid(form));

            Assert.Equal("File is too big, please upload images up to 6MB", exception.Message);
        }