public void CanCreateSolrDictionary() { const string entityTypeName = "Entity type name"; const double numericValue = 42.0; MockEntity MockEntityChanges = new MockEntity(); List <FormField> formFields = new List <FormField>(); TextValue stringTextValue = new TextValue(); stringTextValue.LanguageCode = "en"; stringTextValue.Value = "Forty two"; TextField textField = new TextField(); textField.Name = "Text"; textField.SetTextValues(new List <TextValue>() { stringTextValue }); formFields.Add(textField); TextValue numericTextValue = new TextValue(); numericTextValue.LanguageCode = "en"; numericTextValue.Value = numericValue.ToString(); TextField numericField = new TextField(); numericField.Name = "Numeric"; numericField.SetTextValues(new List <TextValue>() { numericTextValue }); formFields.Add(numericField); // Add two options and select second OptionsField optionsField = new OptionsField(); optionsField.Name = "Options field"; TextValue nonSelectedValue = new TextValue(); nonSelectedValue.LanguageCode = "en"; nonSelectedValue.Value = "Not selected"; TextValue selectedValue = new TextValue(); selectedValue.LanguageCode = "en"; selectedValue.Value = "Selected"; Option notSelectedOption = new Option(); notSelectedOption.Selected = false; notSelectedOption.Value.Add(nonSelectedValue); Option selectedOption = new Option(); selectedOption.Selected = true; selectedOption.Value.Add(selectedValue); List <Option> optList = new List <Option>(); optList.Add(notSelectedOption); optList.Add(selectedOption); optionsField.Options = optList; formFields.Add(optionsField); CFMetadataSet metadataSet = CreateMetadataSet( mDh, "name metadataset", "description metadataset", formFields); CFEntityType entityType = CreateEntityType(mDh, entityTypeName, "description entity type", "Items", metadataSet ); MockEntity.EntityType = entityType; MockEntityChanges.EntityType = entityType; //MockEntityChanges.MetadataSets MockEntity.MetadataSets = new List <CFMetadataSet>() { metadataSet }; MockEntityChanges.MetadataSets = new List <CFMetadataSet>() { metadataSet }; MockEntityChanges.MetadataSets[0].UpdateValueFields(formFields); MockEntity.UpdateValues(MockEntityChanges); // set vales //MockEntity.MetadataSets[0].UpdateValueFields(test); Dictionary <string, object> solrDictionary = MockEntity.ToSolrDictionary(); string metadataSetGuid = metadataSet.MappedGuid.ToString().Replace("-", "_"); string textFieldGuid = textField.MappedGuid.ToString().Replace("-", "_"); string numericFieldGuid = numericField.MappedGuid.ToString().Replace("-", "_"); string optionFieldGuid = optionsField.MappedGuid.ToString().Replace("-", "_"); Dictionary <string, object> expectedResult = new Dictionary <string, object>() { { "id", solrDictionary["id"] }, { "modeltype_s", MockEntity.GetType().Name }, { "entitytype_s", entityTypeName }, { $@"name_{metadataSetGuid}_{textFieldGuid}_txt_en", textField.Name }, { $@"name_{metadataSetGuid}_{numericFieldGuid}_txt_en", numericField.Name }, { $@"name_{metadataSetGuid}_{optionFieldGuid}_txt_en", optionsField.Name }, { $@"value_{metadataSetGuid}_{textFieldGuid}_txts_en", new List <string>() { textField.Values[0].Value } }, { $@"value_{metadataSetGuid}_{numericFieldGuid}_txts_en", new List <string>() { numericValue.ToString() } }, { $@"value_{metadataSetGuid}_{numericFieldGuid}_ds", new List <decimal>() { (decimal)numericValue } }, { $@"value_{metadataSetGuid}_{numericFieldGuid}_is", new List <int>() { (int)numericValue } }, { $@"value_{metadataSetGuid}_{optionFieldGuid}_txts_en", new List <string>() { selectedValue.Value } } }; foreach (KeyValuePair <string, object> entry in expectedResult) { Assert.AreEqual(entry.Value, solrDictionary[entry.Key]); } }