public void Setup() { _submitter = new ApplicationSubmitter(new MemoryRepository<JobApplication>()); _application = new JobApplication() { CV = new byte[0] }; }
public void DisallowedFileTypeReturnsInvalidExtension() { var application = new JobApplication() { FileName = "neroscv.pdf", CV = ResourceReader.GetResourceAsArray("Tests.neroscv.pdf") }; var result = _submitter.Submit(application); Assert.That(result, Is.EqualTo(SubmissionErrors.InvalidExtension)); }
public void AllowedFileTypeReturnsNone() { var application = new JobApplication() { FileName = "neroscv.docx", CV = ResourceReader.GetResourceAsArray("Tests.neroscv.docx") }; var result = _submitter.Submit(application); Assert.That(result, Is.EqualTo(SubmissionErrors.None)); }
public void AllowedFileTypeIncreasesSubmittedApplicationCountByOne() { var application = new JobApplication() { FileName = "neroscv.docx", CV = ResourceReader.GetResourceAsArray("Tests.neroscv.docx") }; var originalCount = _submitter.Count(); var result = _submitter.Submit(application); Assert.That(_submitter.Count(), Is.EqualTo(originalCount + 1)); }
public SubmissionErrors Submit(JobApplication cv) { if (cv.CV == null || cv.CV.Length == 0 || cv.FileName.Length == 0) return SubmissionErrors.MissingCV; foreach (var item in Settings.AllowedFileTypes) { var fi = item.GetType().GetField(item.ToString()); var attribute = (FileAttribute) fi.GetCustomAttribute(typeof (FileAttribute), true); if (attribute.Extension.ToLowerInvariant() == Path.GetExtension(cv.FileName).Replace(".","").ToLowerInvariant()) break; return SubmissionErrors.InvalidExtension; } _repository.Add(cv); _repository.Commit(); return SubmissionErrors.None; }
public static JobApplication Map(JobApplicationModel model) { var result = new JobApplication() { Cover = model.Cover, Email = model.Email, Name = model.Name }; if (model.CVFile != null) { result.FileName = model.CVFile.FileName; using (var ms = new MemoryStream()) { model.CVFile.InputStream.CopyTo(ms); result.CV = ms.ToArray(); } } return result; }