diff --git a/Apps.Remote/Actions/EmploymentActions.cs b/Apps.Remote/Actions/EmploymentActions.cs index ef61902..4fa86cb 100644 --- a/Apps.Remote/Actions/EmploymentActions.cs +++ b/Apps.Remote/Actions/EmploymentActions.cs @@ -157,7 +157,9 @@ public async Task CreateEmployment([ActionParameter] CreateE { "job_title", request.JobTitle }, { "name", request.Name }, { "provisional_start_date", request.ProvisionalStartDate.ToString("yyyy-MM-dd") }, - { "has_seniority_date", hasSeniorityDate ? "yes" : "no" } + { "has_seniority_date", hasSeniorityDate ? "yes" : "no" }, + { "tax_servicing_countries", Array.Empty() }, + { "tax_job_category", request.TaxJobCategory ?? null! } }; if (hasSeniorityDate) diff --git a/Apps.Remote/Apps.Remote.csproj b/Apps.Remote/Apps.Remote.csproj index fdf724b..7acb367 100644 --- a/Apps.Remote/Apps.Remote.csproj +++ b/Apps.Remote/Apps.Remote.csproj @@ -6,7 +6,7 @@ enable Remote Remote is a Global HR Platform that helps companies hire, manage, and pay their entire team — and more effectively compete in the modern global economy through our comprehensive set of core solutions including, HRIS, payroll, international employment, contractor management, and more. - 1.0.13 + 1.0.14 Apps.Remote Apps.Remote Apps.Remote diff --git a/Apps.Remote/DataSourceHandlers/Static/JobCategoryDataSource.cs b/Apps.Remote/DataSourceHandlers/Static/JobCategoryDataSource.cs new file mode 100644 index 0000000..b7393cf --- /dev/null +++ b/Apps.Remote/DataSourceHandlers/Static/JobCategoryDataSource.cs @@ -0,0 +1,26 @@ +using Blackbird.Applications.Sdk.Common.Dictionaries; +using Blackbird.Applications.Sdk.Common.Dynamic; + +namespace Apps.Remote.DataSourceHandlers.Static; + +public class JobCategoryDataSource : IStaticDataSourceItemHandler +{ + public IEnumerable GetData() + { + return new List + { + new DataSourceItem("operations", "Operations"), + new DataSourceItem("finance", "Finance"), + new DataSourceItem("legal", "Legal/Paralegal"), + new DataSourceItem("engineering_it", "Engineering/IT"), + new DataSourceItem("growth_marketing", "Growth & Marketing"), + new DataSourceItem("sales", "Sales"), + new DataSourceItem("customer_experience_support", "Customer Experience/Support"), + new DataSourceItem("people_mobility", "People and mobility"), + new DataSourceItem("techops_supply_chain", "Techops/Supply chain"), + new DataSourceItem("business_process_improvement_product_management", "Business Process Improvement/Product Management"), + new DataSourceItem("research_development", "Research & Development"), + new DataSourceItem("onboarding_payroll", "Onboarding & Payroll"), + }; + } +} diff --git a/Apps.Remote/Models/Requests/Employments/CreateEmploymentRequest.cs b/Apps.Remote/Models/Requests/Employments/CreateEmploymentRequest.cs index d4e7fd1..fb6bb7c 100644 --- a/Apps.Remote/Models/Requests/Employments/CreateEmploymentRequest.cs +++ b/Apps.Remote/Models/Requests/Employments/CreateEmploymentRequest.cs @@ -34,4 +34,7 @@ public class CreateEmploymentRequest [Display("External ID")] public string? ExternalId { get; set; } = string.Empty; + + [Display("Job category", Description = ""), StaticDataSource(typeof(JobCategoryDataSource))] + public string? TaxJobCategory { get; set; } } \ No newline at end of file diff --git a/Tests.Remote/DataSources.cs b/Tests.Remote/DataSources.cs index 1d7d8e1..569ab54 100644 --- a/Tests.Remote/DataSources.cs +++ b/Tests.Remote/DataSources.cs @@ -2,36 +2,47 @@ using Blackbird.Applications.Sdk.Common.Dynamic; using Remote.Base; -namespace Tests.Remote +namespace Tests.Remote; + +[TestClass] +public class DataSources : TestBase { - [TestClass] - public class DataSources : TestBase + [TestMethod] + public async Task EmploymentDataHandler_ReturnsValues() { - [TestMethod] - public async Task EmploymentDataHandler_ReturnsValues() - { - var handler= new EmploymentDataSource(InvocationContext); - var result = await handler.GetDataAsync(new DataSourceContext { SearchString = "" }, CancellationToken.None); + var handler= new EmploymentDataSource(InvocationContext); + var result = await handler.GetDataAsync(new DataSourceContext { SearchString = "" }, CancellationToken.None); - foreach (var item in result) - { - Console.WriteLine($"Id: {item.Key}, Name: {item.Value}"); - } - Assert.IsNotNull(result); + foreach (var item in result) + { + Console.WriteLine($"Id: {item.Key}, Name: {item.Value}"); } + Assert.IsNotNull(result); + } - [TestMethod] - public async Task EmploymentShortIdDataHandler_ReturnsValues() - { - var handler = new EmploymentShortIdDataSource(InvocationContext); - var result = await handler.GetDataAsync(new DataSourceContext { SearchString = "" }, CancellationToken.None); + [TestMethod] + public async Task EmploymentShortIdDataHandler_ReturnsValues() + { + var handler = new EmploymentShortIdDataSource(InvocationContext); + var result = await handler.GetDataAsync(new DataSourceContext { SearchString = "" }, CancellationToken.None); - foreach (var item in result) - { - Console.WriteLine($"Id: {item.Key}, Name: {item.Value}"); - } - Assert.IsNotNull(result); + foreach (var item in result) + { + Console.WriteLine($"Id: {item.Key}, Name: {item.Value}"); } + Assert.IsNotNull(result); + } + + [TestMethod] + public async Task CountryDataSource_ReturnsCountryCodes() + { + var handler = new CountryDataSource(InvocationContext); + var result = await handler.GetDataAsync(new DataSourceContext { SearchString = "" }, CancellationToken.None); + foreach (var item in result) + { + Console.WriteLine($"Id: {item.Key}, Name: {item.Value}"); + } + Assert.IsNotNull(result); } } diff --git a/Tests.Remote/EmploymentTests.cs b/Tests.Remote/EmploymentTests.cs index c8a7a50..dd17e66 100644 --- a/Tests.Remote/EmploymentTests.cs +++ b/Tests.Remote/EmploymentTests.cs @@ -1,41 +1,63 @@ using Apps.Remote.Actions; using Apps.Remote.Models.Requests.Employments; +using Newtonsoft.Json; using Remote.Base; -namespace Tests.Remote +namespace Tests.Remote; + +[TestClass] +public class EmploymentTests : TestBase { - [TestClass] - public class EmploymentTests : TestBase + [TestMethod] + public async Task Search_employments_ReturnsResponse() { - [TestMethod] - public async Task Search_employments_ReturnsResponse() - { - var action = new EmploymentActions(InvocationContext); + var action = new EmploymentActions(InvocationContext); - var response = await action.SearchEmployments( - new SearchEmploymentsRequest { }); + var response = await action.SearchEmployments( + new SearchEmploymentsRequest { }); - foreach (var item in response.Employments) - { - Console.WriteLine($"Id: {item.Id}, Short Id: {item.ShortId}, Name: {item.FullName}"); - } - Assert.IsNotNull(response); + foreach (var item in response.Employments) + { + Console.WriteLine($"Id: {item.Id}, Short Id: {item.ShortId}, Name: {item.FullName}"); } + Assert.IsNotNull(response); + } + [TestMethod] + public async Task Find_employments_ReturnsResponse() + { + var action = new EmploymentActions(InvocationContext); - [TestMethod] - public async Task Find_employments_ReturnsResponse() - { - var action = new EmploymentActions(InvocationContext); - - var response = await action.FindEmployment( - new SearchEmploymentsRequest { ShortId= "GMQ1HR" }); + var response = await action.FindEmployment( + new SearchEmploymentsRequest { ShortId= "GMQ1HR" }); - Console.WriteLine($"Id: {response.Id}, Short Id: {response.ShortId}, Name: {response.FullName}"); + Console.WriteLine($"Id: {response.Id}, Short Id: {response.ShortId}, Name: {response.FullName}"); - Assert.IsNotNull(response); - } + Assert.IsNotNull(response); + } + [TestMethod] + public async Task CreateEmployment_ReturnsResponse() + { + // Arrange + var action = new EmploymentActions(InvocationContext); + var request = new CreateEmploymentRequest + { + Email = "testemail@email.com", + JobTitle = "test job title from BB tests", + Name = "test name", + ProvisionalStartDate = DateTime.Now + TimeSpan.FromDays(21), + CountryCode = "TZA", + Type = "employee", + TaxJobCategory = "finance" + }; + + // Act + var result = await action.CreateEmployment(request); + + // Assert + Console.WriteLine(JsonConvert.SerializeObject(result, Formatting.Indented)); + Assert.IsNotNull(result); } } diff --git a/Tests.Remote/Tests.Remote.csproj b/Tests.Remote/Tests.Remote.csproj index 5a4c08a..abb9a04 100644 --- a/Tests.Remote/Tests.Remote.csproj +++ b/Tests.Remote/Tests.Remote.csproj @@ -27,12 +27,6 @@ - - PreserveNewest - - - PreserveNewest - PreserveNewest