public async Task PostCompanyInfoAsyncTest()
        {
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(Guid.NewGuid().ToString());

            var repository = new EfDeletableEntityRepository <CompanyInfo>(new ApplicationDbContext(options.Options));

            foreach (var item in this.GetCompanyInfoData())
            {
                await repository.AddAsync(item);

                await repository.SaveChangesAsync();
            }

            var service = new CompanyInfoService(repository);

            var fileMockCv = new Mock <IFormFile>();

            var content  = "Hello World from a Fake File";
            var fileName = "test.pdf";
            var ms       = new MemoryStream();
            var writer   = new StreamWriter(ms);

            writer.Write(content);
            writer.Flush();
            ms.Position = 0;
            fileMockCv.Setup(_ => _.OpenReadStream()).Returns(ms);
            fileMockCv.Setup(_ => _.FileName).Returns(fileName);
            fileMockCv.Setup(_ => _.Length).Returns(ms.Length);

            WebClient client = new WebClient();
            var       stream = client.OpenRead("https://ichef.bbci.co.uk/news/976/cpsprodpb/41CF/production/_109474861_angrycat-index-getty3-3.jpg");

            var fileMockImage = new Mock <IFormFile>();

            fileMockImage.Setup(_ => _.OpenReadStream()).Returns(stream);
            fileMockImage.Setup(_ => _.FileName).Returns("cat.jpg");

            var inputModel = new CompanyInfoInputModel
            {
                UserId      = "6",
                Name        = "Andrea",
                Description = "bgscdsu",
                Logo        = fileMockImage.Object,
                Address     = "bcsuigvfdgvdfcdz",
                PhoneNumber = "0888130130",
            };

            await service.PostCompanyInfoAsync(inputModel);

            var candidatesCount = repository.All().ToList().Count;

            Assert.Equal(4, candidatesCount);
        }
예제 #2
0
        public async Task <IActionResult> CompanyInfo(CompanyInfoInputModel input)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.View());
            }

            input.UserId = this.userManager.GetUserId(this.User);

            await this.companyInfoService.PostCompanyInfoAsync(input);

            return(this.Redirect("/"));
        }
예제 #3
0
        public async Task PostCompanyInfoAsync(CompanyInfoInputModel input)
        {
            var companyInfo = new CompanyInfo
            {
                Name        = input.Name,
                UserId      = input.UserId,
                Logo        = this.UploadImageToCloudinary(input.Logo.OpenReadStream()),
                Description = input.Description,
                Address     = input.Address,
                PhoneNumber = input.PhoneNumber,
            };

            await this.companyInfoRepository.AddAsync(companyInfo);

            await this.companyInfoRepository.SaveChangesAsync();
        }