Skip to content
This repository has been archived by the owner on Jun 16, 2024. It is now read-only.

Commit

Permalink
Merge pull request #431 from durgaprasadkatari/master
Browse files Browse the repository at this point in the history
Added support for FetchXmlToQueryExpressionRequest
  • Loading branch information
jordimontana82 authored Jan 29, 2020
2 parents 8fe0407 + 8f711c4 commit 739b8c2
Show file tree
Hide file tree
Showing 4 changed files with 72 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
using System;
using Microsoft.Crm.Sdk.Messages;
using Microsoft.Xrm.Sdk;
using Microsoft.Xrm.Sdk.Query;

namespace FakeXrmEasy.FakeMessageExecutors
{
public class FetchXmlToQueryExpressionRequestExecutor : IFakeMessageExecutor
{
public bool CanExecute(OrganizationRequest request)
{
return request is FetchXmlToQueryExpressionRequest;
}

public OrganizationResponse Execute(OrganizationRequest request, XrmFakedContext ctx)
{
var req = request as FetchXmlToQueryExpressionRequest;
var service = ctx.GetOrganizationService();
FetchXmlToQueryExpressionResponse response = new FetchXmlToQueryExpressionResponse();
response["Query"] = XrmFakedContext.TranslateFetchXmlDocumentToQueryExpression(ctx, XrmFakedContext.ParseFetchXml(req.FetchXml)); ;
return response;
}

public Type GetResponsibleRequestType()
{
return typeof(FetchXmlToQueryExpressionRequest);
}
}
}
1 change: 1 addition & 0 deletions FakeXrmEasy.Shared/FakeXrmEasy.Shared.projitems
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
<Compile Include="$(MSBuildThisFileDirectory)Extensions\TypeExtensions.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Extensions\XmlExtensionsForFetchXml.cs" />
<Compile Include="$(MSBuildThisFileDirectory)FakeMessageExecutors\AddListMembersListRequestExecutor.cs" />
<Compile Include="$(MSBuildThisFileDirectory)FakeMessageExecutors\FetchXmlToQueryExpressionRequestExecutor.cs" />
<Compile Include="$(MSBuildThisFileDirectory)FakeMessageExecutors\RetrieveExchangeRateRequest.cs" />
<Compile Include="$(MSBuildThisFileDirectory)FakeMessageExecutors\BulkDeleteRequestExecutor.cs" />
<Compile Include="$(MSBuildThisFileDirectory)FakeMessageExecutors\RemoveMembersTeamRequestExecutor.cs" />
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
using Crm;
using Microsoft.Crm.Sdk.Messages;
using Microsoft.Xrm.Sdk;
using System;
using System.Linq;
using System.Reflection;
using Xunit;

namespace FakeXrmEasy.Tests.FakeContextTests.FetchXmlToQueryExpressionRequestTests
{
public class FetchXmlToQueryExpressionRequestTests
{
[Fact]
public void Should_convert_fetchxml_query_into_queryexpression()
{
var context = new XrmFakedContext();
context.ProxyTypesAssembly = Assembly.GetExecutingAssembly();
var service = context.GetOrganizationService();
var request = new FetchXmlToQueryExpressionRequest
{
FetchXml = "<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false'>" +
" <entity name='activitypointer'>" +
" <attribute name='activitytypecode' />" +
" <attribute name='subject' />" +
" <attribute name='description' />" +
" <attribute name='regardingobjectid' />" +
" <attribute name='activityid' />" +
" <attribute name='ownerid' />" +
" <attribute name='scheduledend' />" +
" <attribute name='statecode' />" +
" <order attribute='modifiedon' descending='false' />" +
" </entity>" +
"</fetch>"
};

var response = service.Execute(request) as FetchXmlToQueryExpressionResponse;
Assert.NotNull(response.Query);
Assert.Equal("activitypointer", response.Query.EntityName);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
<Compile Include="$(MSBuildThisFileDirectory)FakeContextTests\AddListMembersListRequestTests\Tests.cs" />
<Compile Include="$(MSBuildThisFileDirectory)FakeContextTests\AddMemberListRequestTests\Tests.cs" />
<Compile Include="$(MSBuildThisFileDirectory)FakeContextTests\BulkDeleteRequestTests\BulkDeleteRequestTests.cs" />
<Compile Include="$(MSBuildThisFileDirectory)FakeContextTests\FetchXmlToQueryExpressionRequestTests\FetchXmlToQueryExpressionRequestTests.cs" />
<Compile Include="$(MSBuildThisFileDirectory)FakeContextTests\QueryTranslationTests\ProjectionTests.cs" />
<Compile Include="$(MSBuildThisFileDirectory)FakeContextTests\RemoveUserFromRecordTeamRequestTests\RemoveUserFromRecordTeamRequestTests.cs" />
<Compile Include="$(MSBuildThisFileDirectory)FakeContextTests\AddUserToRecordTeamRequestTests\AddUserToRecordTeamRequestTests.cs" />
Expand Down

0 comments on commit 739b8c2

Please sign in to comment.