-
Notifications
You must be signed in to change notification settings - Fork 7
Commit
- Loading branch information
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
using Microsoft.Xrm.Sdk.Organization; | ||
Check failure on line 1 in src/FakeXrmEasy.Messages/ContextProperties/CurrentOrganizationDetails.cs
|
||
|
||
namespace FakeXrmEasy.Messages.ContextProperties | ||
{ | ||
/// <summary> | ||
/// Stores information about the current organization details | ||
/// </summary> | ||
public class CurrentOrganizationDetails | ||
{ | ||
/// <summary> | ||
/// The organization details | ||
/// </summary> | ||
public OrganizationDetail Details { get; set; } | ||
Check failure on line 13 in src/FakeXrmEasy.Messages/ContextProperties/CurrentOrganizationDetails.cs
|
||
} | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
using System; | ||
using FakeXrmEasy.Abstractions; | ||
using FakeXrmEasy.Abstractions.FakeMessageExecutors; | ||
using FakeXrmEasy.Messages.ContextProperties; | ||
using Microsoft.Crm.Sdk.Messages; | ||
using Microsoft.Xrm.Sdk; | ||
using Microsoft.Xrm.Sdk.Organization; | ||
Check failure on line 7 in src/FakeXrmEasy.Messages/FakeMessageExecutors/RetrieveCurrentOrganizationRequestExecutor.cs
|
||
|
||
namespace FakeXrmEasy.FakeMessageExecutors | ||
{ | ||
/// <summary> | ||
/// Implements an executor for the RetrieveCurrentOrganizationRequest: https://learn.microsoft.com/en-us/dotnet/api/microsoft.crm.sdk.messages.retrievecurrentorganizationrequest?view=dataverse-sdk-latest | ||
/// </summary> | ||
public class RetrieveCurrentOrganizationRequestExecutor: IFakeMessageExecutor | ||
{ | ||
public bool CanExecute(OrganizationRequest request) | ||
{ | ||
return request is RetrieveCurrentOrganizationRequest; | ||
} | ||
|
||
public OrganizationResponse Execute(OrganizationRequest request, IXrmFakedContext ctx) | ||
{ | ||
OrganizationDetail orgDetail = null; | ||
if (ctx.HasProperty<CurrentOrganizationDetails>()) | ||
{ | ||
orgDetail = ctx.GetProperty<CurrentOrganizationDetails>().Details; | ||
} | ||
|
||
if (orgDetail == null) | ||
{ | ||
orgDetail = new OrganizationDetail() | ||
{ | ||
Endpoints = | ||
{ | ||
{ EndpointType.OrganizationDataService, "http://baseUrl/XrmServices/2011/OrganizationDataService.svc" } | ||
} | ||
}; | ||
} | ||
return new RetrieveCurrentOrganizationResponse() | ||
{ | ||
Results = new ParameterCollection | ||
{ | ||
{ "Detail", orgDetail } | ||
} | ||
}; | ||
} | ||
|
||
public Type GetResponsibleRequestType() | ||
{ | ||
return typeof(RetrieveCurrentOrganizationRequest); | ||
} | ||
} | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
using System; | ||
using FakeXrmEasy.Messages.ContextProperties; | ||
using Microsoft.Crm.Sdk.Messages; | ||
using Microsoft.Xrm.Sdk.Organization; | ||
using Xunit; | ||
|
||
namespace FakeXrmEasy.Messages.Tests.FakeMessageExecutors.RetrieveCurrentOrganizationRequestTests | ||
{ | ||
public class RetrieveCurrentOrganizationRequestTests: FakeXrmEasyTestsBase | ||
{ | ||
[Fact] | ||
public void Should_retrieve_current_organization_details_if_none_was_set_by_default() | ||
{ | ||
var response = _service.Execute(new RetrieveCurrentOrganizationRequest()); | ||
Assert.NotNull(response); | ||
|
||
var orgDetail = (response as RetrieveCurrentOrganizationResponse).Detail; | ||
Assert.NotNull(orgDetail); | ||
} | ||
|
||
[Fact] | ||
public void Should_retrieve_current_organization_details() | ||
{ | ||
var currentOrgDetails = new CurrentOrganizationDetails() | ||
{ | ||
Details = new OrganizationDetail() | ||
{ | ||
Geo = "Geo", | ||
Check failure on line 28 in tests/FakeXrmEasy.Messages.Tests/FakeMessageExecutors/RetrieveCurrentOrganizationRequestTests/RetrieveCurrentOrganizationRequestTests.cs
|
||
EnvironmentId = Guid.NewGuid().ToString(), | ||
Check failure on line 29 in tests/FakeXrmEasy.Messages.Tests/FakeMessageExecutors/RetrieveCurrentOrganizationRequestTests/RetrieveCurrentOrganizationRequestTests.cs
|
||
State = OrganizationState.Enabled, | ||
FriendlyName = "OrgFriendlyName", | ||
UniqueName = "UniqueName", | ||
UrlName = "UrlName", | ||
OrganizationId = Guid.NewGuid(), | ||
TenantId = Guid.NewGuid().ToString(), | ||
Check failure on line 35 in tests/FakeXrmEasy.Messages.Tests/FakeMessageExecutors/RetrieveCurrentOrganizationRequestTests/RetrieveCurrentOrganizationRequestTests.cs
|
||
OrganizationVersion = "0.0.0.0", | ||
Endpoints = | ||
{ | ||
{ EndpointType.OrganizationDataService, "http://localhost/XrmService/2011/OrganizationData.svc" } | ||
} | ||
} | ||
}; | ||
|
||
_context.SetProperty(currentOrgDetails); | ||
|
||
var response = _service.Execute(new RetrieveCurrentOrganizationRequest()); | ||
Assert.NotNull(response); | ||
|
||
var orgDetail = (response as RetrieveCurrentOrganizationResponse).Detail; | ||
Assert.Equal(currentOrgDetails.Details.EnvironmentId, orgDetail.EnvironmentId); | ||
Check failure on line 50 in tests/FakeXrmEasy.Messages.Tests/FakeMessageExecutors/RetrieveCurrentOrganizationRequestTests/RetrieveCurrentOrganizationRequestTests.cs
|
||
Assert.Equal(currentOrgDetails.Details.Geo, orgDetail.Geo); | ||
Check failure on line 51 in tests/FakeXrmEasy.Messages.Tests/FakeMessageExecutors/RetrieveCurrentOrganizationRequestTests/RetrieveCurrentOrganizationRequestTests.cs
|
||
Assert.Equal(currentOrgDetails.Details.State, orgDetail.State); | ||
Assert.Equal(currentOrgDetails.Details.FriendlyName, orgDetail.FriendlyName); | ||
Assert.Equal(currentOrgDetails.Details.UniqueName, orgDetail.UniqueName); | ||
Assert.Equal(currentOrgDetails.Details.UrlName, orgDetail.UrlName); | ||
Assert.Equal(currentOrgDetails.Details.OrganizationId, orgDetail.OrganizationId); | ||
Assert.Equal(currentOrgDetails.Details.TenantId, orgDetail.TenantId); | ||
Check failure on line 57 in tests/FakeXrmEasy.Messages.Tests/FakeMessageExecutors/RetrieveCurrentOrganizationRequestTests/RetrieveCurrentOrganizationRequestTests.cs
|
||
Assert.Equal(currentOrgDetails.Details.OrganizationVersion, orgDetail.OrganizationVersion); | ||
} | ||
} | ||
} |