예제 #1
0
        private void UploadResume(TestResume resume)
        {
            Guid fileReferenceId;

            // Upload the file.

            const string fileName = "Resume.doc";

            using (var tempFiles = _filesCommand.SaveTempFile(resume.GetData(), fileName))
            {
                var files = new NameValueCollection {
                    { "file", tempFiles.FilePaths[0] }
                };
                fileReferenceId = new JavaScriptSerializer().Deserialize <JsonResumeModel>(Post(_uploadUrl, null, files)).Id;
            }

            // Parse the file.

            var parsedResumeId = new JavaScriptSerializer().Deserialize <JsonParsedResumeModel>(Post(_parseUrl, new NameValueCollection {
                { "fileReferenceId", fileReferenceId.ToString() }
            })).Id.Value;

            // Submit the form.

            Get(_joinUrl);

            Browser.SetFormVariable(_joinFormId, "fileReferenceId", fileReferenceId.ToString(), false);
            Browser.SetFormVariable(_joinFormId, "parsedResumeId", parsedResumeId.ToString(), false);
            Browser.Submit(_joinFormId);
        }
예제 #2
0
        private void TestParse(TestResume testResume, string fileName)
        {
            var member    = CreateMember(0);
            var candidate = _candidatesQuery.GetCandidate(member.Id);

            Assert.IsNull(candidate.ResumeId);

            LogIn(member);

            // Upload and parse.

            var fileReferenceId = Upload(testResume, fileName);
            var model           = Parse(fileReferenceId);

            // Assert.

            AssertJsonSuccess(model);
            AssertResumeFile(member.Id, fileReferenceId);

            candidate = _candidatesQuery.GetCandidate(member.Id);
            Assert.IsNotNull(candidate.ResumeId);
            var resume = _resumesQuery.GetResume(candidate.ResumeId.Value);

            Assert.IsNotNull(resume);

            // Show that the resume is associated with the uploaded file.

            var resumeFileReference1 = _candidateResumeFilesQuery.GetResumeFile(member.Id, fileReferenceId);
            var resumeFileReference2 = _candidateResumeFilesQuery.GetResumeFile(resume.Id);

            Assert.AreEqual(fileReferenceId, resumeFileReference1.FileReferenceId);
            Assert.AreEqual(fileReferenceId, resumeFileReference2.FileReferenceId);
            Assert.AreEqual(resumeFileReference1.Id, resumeFileReference2.Id);
        }
예제 #3
0
 private Guid Upload(TestResume resume, string fileName)
 {
     using (var files = _filesCommand.SaveTempFile(resume.GetData(), fileName))
     {
         var path = files.FilePaths[0];
         return(Upload(path));
     }
 }
예제 #4
0
        private FileReference GetResumeFile(TestResume testResume)
        {
            const string fileName = "resume.doc";
            var          data     = testResume.GetData();

            using (var stream = new MemoryStream(data))
            {
                return(_filesCommand.SaveFile(FileType.Resume, new StreamFileContents(stream), fileName));
            }
        }
예제 #5
0
        private static void Save(TestResume resume)
        {
            var data     = resume.GetData();
            var filePath = FileSystem.GetAbsolutePath(@"Test\Data\Resumes\" + resume.FileName, RuntimeEnvironment.GetSourceFolder());

            using (var stream = new MemoryStream(data))
            {
                stream.Position = 0;
                using (var fileStream = new FileStream(filePath, FileMode.Create, FileAccess.Write, FileShare.None))
                {
                    StreamUtil.CopyStream(stream, fileStream);
                }
            }
        }
예제 #6
0
        public void TestAddCandidateAndResumeTogether()
        {
            TestCandidate candidate = new TestCandidate();

            candidate.Name = "Mohan";

            TestResume resume = new TestResume();

            resume.IsFresher = true;

            Relation.Set(candidate, resume);

            candidate = SaveAndReFetch(candidate);

            Assert.AreEqual(Relation.Get <TestCandidate, TestResume>(candidate).IsFresher, true);
        }
예제 #7
0
        private void Test(TestResume testResume, string fileName)
        {
            // Upload the file.

            var fileReferenceId = Upload(testResume, fileName);

            // Parse the resume.

            var parsedResumeId = Parse(fileReferenceId, testResume);

            // Join.

            Get(GetJoinUrl());
            SubmitJoin(fileReferenceId, parsedResumeId);
            var instanceId = GetInstanceId();

            var member = CreateMember(FirstName, LastName, EmailAddress);

            UpdateMember(member, MobilePhoneNumber, PhoneNumberType.Mobile, Location);
            UpdateMember(member, Gender, DateOfBirth);
            var candidate = CreateCandidate();

            UpdateCandidate(candidate, SalaryLowerBound, SalaryRate);
            SubmitPersonalDetails(instanceId, member, candidate, Password);

            // Make sure a resume is created.

            var resume = CreateResume();

            if (testResume != TestResume.Complete)
            {
                resume.Jobs = new List <Job> {
                    new Job {
                        Title = NewJobTitle
                    }
                }
            }
            ;
            SubmitJobDetails(instanceId, member, candidate, resume, false, null, parsedResumeId != null);

            // Assert.

            AssertCandidateResume(member.GetBestEmailAddress().Address, fileName, fileReferenceId, parsedResumeId);
        }
예제 #8
0
        private void AssertFile(Stream stream, TestResume testResume)
        {
            Assert.AreEqual("application/msword", GetContentType());

            var contents = new byte[0];

            using (var reader = new BinaryReader(stream))
            {
                var buffer = new byte[1024];
                var read   = reader.Read(buffer, 0, 1024);
                while (read != 0)
                {
                    contents = contents.Concat(buffer.Take(read)).ToArray();
                    read     = reader.Read(buffer, 0, 1024);
                }
            }

            // Check got resume file.

            Assert.IsTrue(testResume.GetData().SequenceEqual(contents));
        }
예제 #9
0
        private void Test(TestResume testResume, string fileName)
        {
            // Upload the file.

            var fileReferenceId = Upload(testResume, fileName);

            // Parse the resume.

            var parsedResumeId = Parse(fileReferenceId);

            // Join.

            Get(GetJoinUrl());
            SubmitJoin(fileReferenceId, parsedResumeId);
            var instanceId = GetInstanceId();

            var parsedResume = testResume.GetParsedResume();
            var member       = GetMember(parsedResume);
            var candidate    = GetCandidate();

            AssertPersonalDetails(instanceId, member, candidate, string.Empty, string.Empty, false);
        }
예제 #10
0
        private Guid?Parse(Guid?fileReferenceId, TestResume resume)
        {
            var response = Post(_parseUrl, new NameValueCollection {
                { "fileReferenceId", fileReferenceId.ToString() }
            });
            var model = new JavaScriptSerializer().Deserialize <JsonParsedResumeModel>(response);

            if (resume == TestResume.Invalid || resume == TestResume.Empty)
            {
                AssertJsonError(model, null, "Our system is unable to extract your profile information from this file. Please try another document or create your profile manually.");
                return(null);
            }

            if (resume == TestResume.Unavailable)
            {
                AssertJsonError(model, null, "Our system is unable to extract your profile information from this file at this time. Please try again later or create your profile manually. We apologise for the inconvenience.");
                return(null);
            }

            AssertJsonSuccess(model);
            return(model.Id);
        }
예제 #11
0
        protected void CreateMember(TestResume testResume, out Member member, out Candidate candidate, out Resume resume)
        {
            // Member.

            member = CreateMember();

            // Candidate.

            candidate = _candidatesQuery.GetCandidate(member.Id);
            candidate.DesiredJobTitle = DesiredJobTitle;
            candidate.DesiredJobTypes = JobTypes.FullTime | JobTypes.JobShare;
            candidate.DesiredSalary   = new Salary {
                LowerBound = SalaryLowerBound, Rate = SalaryRate.Year, Currency = Currency.AUD
            };
            candidate.HighestEducationLevel = EducationLevel.Postgraduate;
            var industries = _industriesQuery.GetIndustries();

            candidate.Industries = new List <Industry> {
                industries[1], industries[2]
            };
            candidate.RecentProfession     = Profession.Science;
            candidate.RecentSeniority      = Seniority.MidSenior;
            candidate.RelocationPreference = RelocationPreference.Yes;
            var country = _locationQuery.GetCountry(Country);

            candidate.RelocationLocations = new List <LocationReference> {
                _locationQuery.ResolveLocation(country, RelocationLocation)
            };
            candidate.Status     = CandidateStatus.AvailableNow;
            candidate.VisaStatus = VisaStatus.RestrictedWorkVisa;

            _candidatesCommand.UpdateCandidate(candidate);

            // Resume.

            resume = testResume.GetParsedResume().Resume;
            _candidateResumesCommand.CreateResume(candidate, resume);
        }