Unit Test RetrieveAttributeResponse in CRM using Microsoft Fakes.


Recently we wrote a plugin that was using RetrieveAttribute class to get the label as well as value of the optionset field.

The issue that we faced over here is that the AttributeMetadata property of RetrieveAttributeResponse is read only, we cannot set it. The following post provided the solution i.e. writing a wrapper class over the RetrieveAttributeResponse


organizationService.ExecuteOrganizationRequest = request =>
 var retrievedPicklistAttributeMetadata = new PicklistAttributeMetadata();

if (request.Parameters["LogicalName"].ToString() == "lss_service_request_status")
 var optionMetadata = new OptionMetadata(new Label("Closed", 1033), 10);
 optionMetadata.Label.UserLocalizedLabel = new LocalizedLabel("Closed", 1033);
 optionMetadata.Label.UserLocalizedLabel.Label = "Closed";

var serviceRequestTypeOptionSet = new OptionSetMetadata
 Name = "lss_service_request_status",
 DisplayName = new Label("Service Request Status", 1033),
 IsGlobal = false,
 OptionSetType = OptionSetType.Picklist,
 Options = { optionMetadata }

retrievedPicklistAttributeMetadata.OptionSet = serviceRequestTypeOptionSet;

var retrAttResponse = new RetrieveAttributeResponseWrapper(new RetrieveAttributeResponse());
 retrAttResponse.AttributeMetadata = retrievedPicklistAttributeMetadata;
 return retrAttResponse;

Hope it helps!

Author: Nishant Rana

I love working in and sharing everything about Microsoft.NET technology !

5 thoughts on “Unit Test RetrieveAttributeResponse in CRM using Microsoft Fakes.”

  1. Hi Nishant,
    I really like Lucas’s very useful post.
    I’ve been using his idea to mock not only the RetrieveAttributeResponse, but also the RetrieveMultipleResponse and RetrieveEntityResponse classes.
    However, I’ve hit a problem when trying to work with the RetrieveEntityResponseWrapper. The response needs to contain an instance of EntityMetadata, which I can instantiate in my mocked response. However, I need to set the Attributes property of the EntityMetadata, which is a read-only property.
    So in some way I need to have a wrapped class within a wrapped class, and I don’t see how I can do this?

    Is what I’m trying to do possible – can I mock the read-only Attributes property of the EntityMetadata property of my RetrieveEntityResponseWrapper?

    Many thanks for your thoughts,


  2. Hi Nishant,

    I am new to Fakes and struggling to mock the RetrieveMetadataChangesResponse which is the output of RetrieveMetadataChangesRequest. Did not get any sample on how to do it.

    Can you please help?



Please share your thoughts

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.