public static void Presence_of_concreteType_token_does_not_interfere_with_normal_deserialization() { // Arrange var expectedId = "year-field"; var expectedDecimalPlaces = 5; var expectedTitle = "my-title"; var year = new YearField(expectedId) { NumberOfDecimalPlaces = expectedDecimalPlaces, Title = expectedTitle, }; var serializer = new ObcJsonSerializer(typeof(TypesToRegisterJsonSerializationConfiguration <Field>).ToJsonSerializationConfigurationType()); var jsonWithConcreteType = serializer.SerializeToString(year); var settings = new NullJsonSerializationConfiguration().BuildJsonSerializerSettings(SerializationDirection.Deserialize, (JsonSerializationConfigurationBase)serializer.SerializationConfiguration); settings.Converters = new JsonConverter[0]; // Act var actual = JsonConvert.DeserializeObject <YearField>(jsonWithConcreteType, settings); // Assert typeof(YearField).IsAssignableTo(typeof(Field)).Should().BeTrue(); jsonWithConcreteType.Should().Contain("$concreteType"); actual.Id.Should().Be(expectedId); actual.NumberOfDecimalPlaces.Should().Be(expectedDecimalPlaces); actual.Title.Should().Be(expectedTitle); }
public UMHDataConstituentSearchHelper(RootUIModel model, Blackbaud.AppFx.XmlTypes.SearchListOutputType outputDefinition) { _model = model; _outputDefinition = outputDefinition; _checkmergedconstituents = (BooleanField)_model.Fields["CHECKMERGEDCONSTITUENTS"]; _exactmatchonly = (BooleanField)_model.Fields["EXACTMATCHONLY"]; _includeindividuals = (BooleanField)_model.Fields["INCLUDEINDIVIDUALS"]; _checknickname = (BooleanField)_model.Fields["CHECKNICKNAME"]; _checkaliases = (BooleanField)_model.Fields["CHECKALIASES"]; _onlyprimaryaddress = (BooleanField)_model.Fields["ONLYPRIMARYADDRESS"]; _includeorganizations = (BooleanField)_model.Fields["INCLUDEORGANIZATIONS"]; _includegroups = (BooleanField)_model.Fields["INCLUDEGROUPS"]; _excludecustomgroups = (BooleanField)_model.Fields["EXCLUDECUSTOMGROUPS"]; _excludehouseholds = (BooleanField)_model.Fields["EXCLUDEHOUSEHOLDS"]; _fuzzysearchonname = (BooleanField)_model.Fields["FUZZYSEARCHONNAME"]; _countryId = (SimpleDataListField <Guid>)_model.Fields["COUNTRYID"]; _stateid = (SimpleDataListField <Guid>)_model.Fields["STATEID"]; _postcode = (SearchListField <string>)_model.Fields["POSTCODE"]; _keyname = (StringField)_model.Fields["KEYNAME"]; _firstname = (StringField)_model.Fields["FIRSTNAME"]; _addressblock = (StringField)_model.Fields["ADDRESSBLOCK"]; _city = (StringField)_model.Fields["CITY"]; _primarybusiness = (StringField)_model.Fields["PRIMARYBUSINESS"]; _emailaddress = (StringField)_model.Fields["EMAILADDRESS"]; _ssn = (StringField)_model.Fields["SSN"]; _searchin = (StringField)_model.Fields["SEARCHIN"]; _minimumdate = (DateField)_model.Fields["MINIMUMDATE"]; _classof = (YearField)_model.Fields["CLASSOF"]; UIField constituentQuickFindField = null; if (_model.Fields.TryGetValue("CONSTITUENTQUICKFIND", ref constituentQuickFindField)) { _constituentquickfind = (StringField)constituentQuickFindField; } _hideadvancedoptions = (GenericUIAction)_model.Actions["HIDEADVANCEDOPTIONS"]; _showadvancedoptions = (GenericUIAction)_model.Actions["SHOWADVANCEDOPTIONS"]; }