public void GetValueTest() { var dataTypeService = Mock.Of <IDataTypeService>(); var propListDataType = new DataTypeDefinition("propListEditorAlias") { Id = 1, Key = Guid.Parse("74AFF355-537A-4443-9801-C131FE83FF1F"), DatabaseType = DataTypeDatabaseType.Ntext }; var innerDataType = new DataTypeDefinition("innerEditorAlias") { Id = 2, Key = Guid.Parse("D21BA417-98AC-4D05-8EF9-0ED3D75A8C0D"), DatabaseType = DataTypeDatabaseType.Integer // for true/false }; var dataTypes = new[] { propListDataType, innerDataType }; Mock.Get(dataTypeService) .Setup(x => x.GetDataTypeDefinitionById(It.IsAny <Guid>())) .Returns <Guid>(id => dataTypes.FirstOrDefault(x => x.Key == id)); var preValues = new Dictionary <int, PreValueCollection> { { 1, new PreValueCollection(new Dictionary <string, PreValue> { { "dataType", new PreValue(innerDataType.Key.ToString()) } }) } }; Mock.Get(dataTypeService) .Setup(x => x.GetPreValuesCollectionByDataTypeId(It.IsAny <int>())) .Returns <int>(id => preValues.TryGetValue(id, out var collection) ? collection : null); ValueConnectorCollection connectors = null; var defaultConnector = new DefaultValueConnector(); var propListConnector = new PropertyListValueConnector(dataTypeService, new Lazy <ValueConnectorCollection>(() => connectors)); connectors = new ValueConnectorCollection(new Dictionary <string, IValueConnector> { { "innerEditorAlias", defaultConnector }, { "propListEditorAlias", propListConnector } }); var input = $"{{\"dtd\":\"{innerDataType.Key}\",\"values\":[0]}}"; var propertyType = new PropertyType(propListDataType); var property = new Property(propertyType, input); var dependencies = new List <ArtifactDependency>(); var output = propListConnector.GetValue(property, dependencies); Console.WriteLine(output); var expected = $"{{\"dtd\":\"{innerDataType.Key}\",\"values\":[\"i0\"]}}"; Assert.AreEqual(expected, output); }
public void GetValueTest() { var dataTypeService = Mock.Of <IDataTypeService>(); var tupleDataType = new DataTypeDefinition("tupleEditorAlias") { Id = 1, Key = Guid.Parse("3BBFB03B-B6AD-4310-986B-44E9F31A4F1F"), DatabaseType = DataTypeDatabaseType.Ntext }; var innerDataType = new DataTypeDefinition("innerEditorAlias") { Id = 2, Key = Guid.Parse("0F6DCC71-2FA7-496B-A858-8D6DDAF37F59"), DatabaseType = DataTypeDatabaseType.Integer // for true/false }; var dataTypes = new[] { tupleDataType, innerDataType }; Mock.Get(dataTypeService) .Setup(x => x.GetDataTypeDefinitionById(It.IsAny <Guid>())) .Returns <Guid>(id => dataTypes.FirstOrDefault(x => x.Key == id)); var preValues = new Dictionary <int, PreValueCollection> { { 1, new PreValueCollection(new Dictionary <string, PreValue> { { "dataTypes", new PreValue($"[{{\"key\":\"{Guid.Empty}\",\"dtd\":\"{innerDataType.Key}\"}}]") } }) } }; Mock.Get(dataTypeService) .Setup(x => x.GetPreValuesCollectionByDataTypeId(It.IsAny <int>())) .Returns <int>(id => preValues.TryGetValue(id, out var collection) ? collection : null); ValueConnectorCollection connectors = null; var defaultConnector = new DefaultValueConnector(); var tupleConnector = new TupleValueConnector(dataTypeService, new Lazy <ValueConnectorCollection>(() => connectors)); connectors = new ValueConnectorCollection(new Dictionary <string, IValueConnector> { { "innerEditorAlias", defaultConnector }, { "tupleEditorAlias", tupleConnector } }); var input = $"[{{\"key\":\"{Guid.Empty}\",\"dtd\":\"{innerDataType.Key}\",\"value\":0}}]"; var propertyType = new PropertyType(tupleDataType); var property = new Property(propertyType, input); var dependencies = new List <ArtifactDependency>(); var output = tupleConnector.GetValue(property, dependencies); Console.WriteLine(output); var expected = $"[{{\"key\":\"{Guid.Empty}\",\"dtd\":\"{innerDataType.Key}\",\"value\":\"i0\"}}]"; Assert.AreEqual(expected, output); }
public void GetValueTest() { var dataTypeService = Mock.Of <IDataTypeService>(); var vortoDataType = new DataTypeDefinition("vortoEditorAlias") { Id = 1, Key = Guid.Parse("ebd71353-206e-4df6-8a4c-e194519f7794"), DatabaseType = DataTypeDatabaseType.Ntext }; var innerDataType = new DataTypeDefinition("innerEditorAlias") { Id = 2, Key = Guid.Parse("92897bc6-a5f3-4ffe-ae27-f2e7e33dda49"), DatabaseType = DataTypeDatabaseType.Integer // for true/false }; var dataTypes = new[] { vortoDataType, innerDataType }; Mock.Get(dataTypeService) .Setup(x => x.GetDataTypeDefinitionById(It.IsAny <Guid>())) .Returns <Guid>(id => dataTypes.FirstOrDefault(x => x.Key == id)); var preValues = new Dictionary <int, PreValueCollection> { { 1, new PreValueCollection(new Dictionary <string, PreValue> { { "dataType", new PreValue("{\"guid\":\"92897bc6-a5f3-4ffe-ae27-f2e7e33dda49\",\"name\":\"True/False\",\"propertyEditorAlias\":\"innerEditorAlias\"}") } }) } }; Mock.Get(dataTypeService) .Setup(x => x.GetPreValuesCollectionByDataTypeId(It.IsAny <int>())) .Returns <int>(id => preValues.TryGetValue(id, out var collection) ? collection : null); ValueConnectorCollection connectors = null; var defaultConnector = new DefaultValueConnector(); var vortoConnector = new VortoValueConnector(dataTypeService, new Lazy <ValueConnectorCollection>(() => connectors)); connectors = new ValueConnectorCollection(new Dictionary <string, IValueConnector> { { "innerEditorAlias", defaultConnector }, { "vortoEditorAlias", vortoConnector } }); var input = "{\"values\":{\"da-DK\":0,\"de-DE\":0,\"en-GB\":0,\"en\":0},\"dtdGuid\":\"ebd71353-206e-4df6-8a4c-e194519f7794\"}"; var propertyType = new PropertyType(vortoDataType); var property = new Property(propertyType, input); var dependencies = new List <ArtifactDependency>(); var output = vortoConnector.GetValue(property, dependencies); Console.WriteLine(output); Assert.AreEqual("{\"values\":{\"da-DK\":\"i0\",\"de-DE\":\"i0\",\"en-GB\":\"i0\",\"en\":\"i0\"},\"dtdGuid\":\"ebd71353-206e-4df6-8a4c-e194519f7794\"}", output); }
public void SetValueTest() { var dataTypeService = Mock.Of <IDataTypeService>(); var propListDataType = new DataTypeDefinition("propListEditorAlias") { Id = 1, Key = Guid.Parse("74AFF355-537A-4443-9801-C131FE83FF1F"), DatabaseType = DataTypeDatabaseType.Ntext }; var innerDataType = new DataTypeDefinition("innerEditorAlias") { Id = 2, Key = Guid.Parse("D21BA417-98AC-4D05-8EF9-0ED3D75A8C0D"), DatabaseType = DataTypeDatabaseType.Integer // for true/false }; var dataTypes = new[] { propListDataType, innerDataType }; Mock.Get(dataTypeService) .Setup(x => x.GetDataTypeDefinitionById(It.IsAny <Guid>())) .Returns <Guid>(id => dataTypes.FirstOrDefault(x => x.Key == id)); var preValues = new Dictionary <int, PreValueCollection> { { 1, new PreValueCollection(new Dictionary <string, PreValue> { { "dataType", new PreValue(innerDataType.Key.ToString()) } }) } }; Mock.Get(dataTypeService) .Setup(x => x.GetPreValuesCollectionByDataTypeId(It.IsAny <int>())) .Returns <int>(id => preValues.TryGetValue(id, out var collection) ? collection : null); ValueConnectorCollection connectors = null; var defaultConnector = new DefaultValueConnector(); var propListConnector = new PropertyListValueConnector(dataTypeService, new Lazy <ValueConnectorCollection>(() => connectors)); connectors = new ValueConnectorCollection(new Dictionary <string, IValueConnector> { { "innerEditorAlias", defaultConnector }, { "propListEditorAlias", propListConnector } }); var input = $"{{\"dtd\":\"{innerDataType.Key}\",\"values\":[\"i0\"]}}"; UmbracoConfig.For.SetUmbracoSettings(GenerateMockSettings()); var propListPropertyType = new PropertyType(propListDataType, "propListProperty"); var propListProperty = new Property(propListPropertyType, null); // value is going to be replaced var propListContent = new Content("mockContent", -1, new ContentType(-1), new PropertyCollection(new List <Property> { propListProperty })); propListConnector.SetValue(propListContent, "propListProperty", input); var output = propListContent.GetValue("propListProperty"); Assert.IsInstanceOf <string>(output); Console.WriteLine(output); var expected = $"{{\"dtd\":\"{innerDataType.Key}\",\"values\":[0]}}"; Assert.AreEqual(expected, output); }
public void SetValueTest() { var dataTypeService = Mock.Of <IDataTypeService>(); var tupleDataType = new DataTypeDefinition("tupleEditorAlias") { Id = 1, Key = Guid.Parse("3BBFB03B-B6AD-4310-986B-44E9F31A4F1F"), DatabaseType = DataTypeDatabaseType.Ntext }; var innerDataType = new DataTypeDefinition("innerEditorAlias") { Id = 2, Key = Guid.Parse("0F6DCC71-2FA7-496B-A858-8D6DDAF37F59"), DatabaseType = DataTypeDatabaseType.Integer // for true/false }; var dataTypes = new[] { tupleDataType, innerDataType }; Mock.Get(dataTypeService) .Setup(x => x.GetDataTypeDefinitionById(It.IsAny <Guid>())) .Returns <Guid>(id => dataTypes.FirstOrDefault(x => x.Key == id)); var preValues = new Dictionary <int, PreValueCollection> { { 1, new PreValueCollection(new Dictionary <string, PreValue> { { "dataTypes", new PreValue($"[{{\"key\":\"{Guid.Empty}\",\"dtd\":\"{innerDataType.Key}\"}}]") } }) } }; Mock.Get(dataTypeService) .Setup(x => x.GetPreValuesCollectionByDataTypeId(It.IsAny <int>())) .Returns <int>(id => preValues.TryGetValue(id, out var collection) ? collection : null); ValueConnectorCollection connectors = null; var defaultConnector = new DefaultValueConnector(); var tupleConnector = new TupleValueConnector(dataTypeService, new Lazy <ValueConnectorCollection>(() => connectors)); connectors = new ValueConnectorCollection(new Dictionary <string, IValueConnector> { { "innerEditorAlias", defaultConnector }, { "tupleEditorAlias", tupleConnector } }); var input = $"[{{\"key\":\"{Guid.Empty}\",\"dtd\":\"{innerDataType.Key}\",\"value\":\"i0\"}}]"; UmbracoConfig.For.SetUmbracoSettings(GenerateMockSettings()); var tuplePropertyType = new PropertyType(tupleDataType, "tupleProperty"); var tupleProperty = new Property(tuplePropertyType, null); // value is going to be replaced var tupleContent = new Content("mockContent", -1, new ContentType(-1), new PropertyCollection(new List <Property> { tupleProperty })); tupleConnector.SetValue(tupleContent, "tupleProperty", input); var output = tupleContent.GetValue("tupleProperty"); Assert.IsInstanceOf <string>(output); Console.WriteLine(output); var expected = $"[{{\"key\":\"{Guid.Empty}\",\"dtd\":\"{innerDataType.Key}\",\"value\":0}}]"; Assert.AreEqual(expected, output); }
public void SetValueTest() { var dataTypeService = Mock.Of <IDataTypeService>(); var vortoDataType = new DataTypeDefinition("vortoEditorAlias") { Id = 1, Key = Guid.Parse("ebd71353-206e-4df6-8a4c-e194519f7794"), DatabaseType = DataTypeDatabaseType.Ntext }; var innerDataType = new DataTypeDefinition("innerEditorAlias") { Id = 2, Key = Guid.Parse("92897bc6-a5f3-4ffe-ae27-f2e7e33dda49"), DatabaseType = DataTypeDatabaseType.Integer // for true/false }; var dataTypes = new[] { vortoDataType, innerDataType }; Mock.Get(dataTypeService) .Setup(x => x.GetDataTypeDefinitionById(It.IsAny <Guid>())) .Returns <Guid>(id => dataTypes.FirstOrDefault(x => x.Key == id)); var preValues = new Dictionary <int, PreValueCollection> { { 1, new PreValueCollection(new Dictionary <string, PreValue> { { "dataType", new PreValue("{\"guid\":\"92897bc6-a5f3-4ffe-ae27-f2e7e33dda49\",\"name\":\"True/False\",\"propertyEditorAlias\":\"innerEditorAlias\"}") } }) } }; Mock.Get(dataTypeService) .Setup(x => x.GetPreValuesCollectionByDataTypeId(It.IsAny <int>())) .Returns <int>(id => preValues.TryGetValue(id, out var collection) ? collection : null); ValueConnectorCollection connectors = null; var defaultConnector = new DefaultValueConnector(); var vortoConnector = new VortoValueConnector(dataTypeService, new Lazy <ValueConnectorCollection>(() => connectors)); connectors = new ValueConnectorCollection(new Dictionary <string, IValueConnector> { { "innerEditorAlias", defaultConnector }, { "vortoEditorAlias", vortoConnector } }); var input = "{\"values\":{\"da-DK\":\"i0\",\"de-DE\":\"i0\",\"en-GB\":\"i0\",\"en\":\"i0\"},\"dtdGuid\":\"ebd71353-206e-4df6-8a4c-e194519f7794\"}"; UmbracoConfig.For.SetUmbracoSettings(GenerateMockSettings()); var vortoPropertyType = new PropertyType(vortoDataType, "vortoProperty"); var vortoProperty = new Property(vortoPropertyType, null); // value is going to be replaced var vortoContent = new Content("mockContent", -1, new ContentType(-1), new PropertyCollection(new List <Property> { vortoProperty })); vortoConnector.SetValue(vortoContent, "vortoProperty", input); var output = vortoContent.GetValue("vortoProperty"); // fixme - why strings and not integers?! // so "i0" is sent to default connector, but it sets value to "0" not 0 - wtf? Assert.IsInstanceOf <string>(output); Console.WriteLine(output); Assert.AreEqual("{\"values\":{\"da-DK\":0,\"de-DE\":0,\"en-GB\":0,\"en\":0},\"dtdGuid\":\"ebd71353-206e-4df6-8a4c-e194519f7794\"}", output); }