public void CreateLeadAndSearch() { var subAreaRequest = new SubAreaViewModel(baseUrl).GET <SubAreaViewModelResponse>(); var selectedArea = subAreaRequest.SubAreas[0]; var leadModel = new LeadsSaveViewModel(baseUrl) { name = "User1", email = "*****@*****.**", mobileNumber = "123456789", address = "FakeAddress", pinCode = selectedArea.PinCode, subAreaId = selectedArea.Id }; var result = leadModel.POST <LeadsSaveSuccessModel>(); Assert.IsNotEmpty(result.Id, $"[{nameof(result.Id)}] empty"); var searchLead = new LeadViewModelRequest(baseUrl, result.Id).GET <LeadViewModelResponse>(); //compare lead model Assert.AreEqual(leadModel.name, searchLead.name, $"[{nameof(searchLead.name)}] not as expected"); Assert.AreEqual(leadModel.address, searchLead.address, $"[{nameof(searchLead.address)}] not as expected"); Assert.AreEqual(leadModel.email, searchLead.email, $"[{nameof(searchLead.email)}] not as expected"); Assert.AreEqual(leadModel.mobileNumber, searchLead.mobileNumber, $"[{nameof(searchLead.mobileNumber)}] not as expected"); Assert.AreEqual(leadModel.pinCode, searchLead.pinCode, $"[{nameof(searchLead.pinCode)}] not as expected"); Assert.AreEqual(leadModel.subAreaId, searchLead.subAreaId, $"[{nameof(searchLead.subAreaId)}] not as expected"); //compare subarea model Assert.AreEqual(selectedArea.Name, searchLead.subArea.Name, $"[{nameof(searchLead.subArea.Name)}] not as expected"); Assert.AreEqual(selectedArea.Id, searchLead.subArea.Id, $"[{nameof(searchLead.subArea.Id)}] not as expected"); Assert.AreEqual(selectedArea.PinCode, searchLead.subArea.PinCode, $"[{nameof(searchLead.subArea.PinCode)}] not as expected"); }
public async Task <ActionResult <LeadsSaveSuccessModel> > Post([FromBody] LeadsSaveViewModel candidate) { if (!candidate.SubAreaId.HasValue) { return(this.BadRequest(new ErrorViewModel("SubArea must have valid value"))); } try { var leadSaveModel = new LeadSaveModel { Name = candidate.Name, Address = candidate.Address, PinCode = candidate.PinCode, MobileNumber = candidate.MobileNumber, Email = candidate.Email, SubAreaId = candidate.SubAreaId.Value }; var result = await leadsService.Save(leadSaveModel); return(this.Ok(new LeadsSaveSuccessModel(result))); } catch (Exception e) { return(this.BadRequest(new ErrorViewModel(e.Message))); } }
/// <summary> /// Sends a POST request to create a Lead into the database /// </summary> /// <param name="leadsModel"></param> /// <returns></returns> public LeadsSaveSuccessModel CreateLead(LeadsSaveViewModel leadsModel) { var endpoint = $"{baseUrl}/api/Leads"; var result = this.Post(endpoint, leadsModel); if (result.IsSuccessStatusCode) { return(JsonConvert.DeserializeObject <LeadsSaveSuccessModel>(result.Content)); } throw new InvalidOperationException($"URL: {endpoint}\n\nRESTful Exception: {result.StatusCode}\nError: {result.Content}"); }
public void CreateLead() { var requestModel = new LeadsSaveViewModel(baseUrl) { name = "User1", email = "*****@*****.**", mobileNumber = "123456789", address = "FakeAddress", pinCode = "123", subAreaId = 1 }; var result = requestModel.POST <LeadsSaveSuccessModel>(); Assert.IsNotEmpty(result.Id, $"[{nameof(result.Id)}] empty"); }
public void CreateLeadWithMismatchingSubAreaAndPin() { var client = new LeadsClient(baseUrl); var subAreas = client.GetAllSubAreas(); var selectedArea = subAreas[0]; var leadModel = new LeadsSaveViewModel() { Name = "User1", Email = "*****@*****.**", MobileNumber = "123456789", Address = "FakeAddress", PinCode = "6", SubAreaId = 1 }; Assert.Throws <InvalidOperationException>(() => client.CreateLead(leadModel), "[exception] was not thrown as expected"); }
public void CreateLeadWithAreaSearch() { var subAreaRequest = new SubAreaViewModel(baseUrl).GET <SubAreaViewModelResponse>(); var selectedArea = subAreaRequest.SubAreas[0]; var requestModel = new LeadsSaveViewModel(baseUrl) { name = "User1", email = "*****@*****.**", mobileNumber = "123456789", address = "FakeAddress", pinCode = selectedArea.PinCode, subAreaId = selectedArea.Id }; var result = requestModel.POST <LeadsSaveSuccessModel>(); Assert.IsNotEmpty(result.Id, $"[{nameof(result.Id)}] empty"); }
public void CreateLeadWithFilteredSubArea() { var client = new LeadsClient(baseUrl); var selectedPin = "567"; var subAreas = client.GetFilteredSubArea(selectedPin); var selectedArea = subAreas[0]; var leadModel = new LeadsSaveViewModel() { Name = "User1", Email = "*****@*****.**", MobileNumber = "123456789", Address = "FakeAddress", PinCode = selectedArea.PinCode, SubAreaId = selectedArea.Id }; var result = client.CreateLead(leadModel); Assert.IsNotEmpty(result.Id, $"[{nameof(result.Id)}] empty"); //search for created lead var searchLead = client.SearchLead(result.Id); //compare lead model Assert.AreEqual(leadModel.Name, searchLead.Name, $"[{nameof(searchLead.Name)}] not as expected"); Assert.AreEqual(leadModel.Address, searchLead.Address, $"[{nameof(searchLead.Address)}] not as expected"); Assert.AreEqual(leadModel.Email, searchLead.Email, $"[{nameof(searchLead.Email)}] not as expected"); Assert.AreEqual(leadModel.MobileNumber, searchLead.MobileNumber, $"[{nameof(searchLead.MobileNumber)}] not as expected"); Assert.AreEqual(leadModel.PinCode, searchLead.PinCode, $"[{nameof(searchLead.PinCode)}] not as expected"); Assert.AreEqual(leadModel.SubAreaId, searchLead.SubAreaId, $"[{nameof(searchLead.SubAreaId)}] not as expected"); //compare subarea model Assert.AreEqual(selectedArea.Name, searchLead.SubArea.Name, $"[{nameof(searchLead.SubArea.Name)}] not as expected"); Assert.AreEqual(selectedArea.Id, searchLead.SubArea.Id, $"[{nameof(searchLead.SubArea.Id)}] not as expected"); Assert.AreEqual(selectedArea.PinCode, searchLead.SubArea.PinCode, $"[{nameof(searchLead.SubArea.PinCode)}] not as expected"); //Additional verificaion Assert.AreEqual(selectedPin, searchLead.PinCode, $"[{nameof(searchLead.PinCode)}] not as expected"); }
public void CreateLeadNameSpecialCharacters() { var client = new LeadsClient(baseUrl); var subAreas = client.GetAllSubAreas(); var selectedArea = subAreas[0]; var leadModel = new LeadsSaveViewModel() { Name = "User1!@#$%^&*()_0", Email = "*****@*****.**", MobileNumber = "123456789", Address = "FakeAddress", PinCode = selectedArea.PinCode, SubAreaId = selectedArea.Id }; var result = client.CreateLead(leadModel); Assert.IsNotEmpty(result.Id, $"[{nameof(result.Id)}] empty"); }