public void Can_Parse_Array_Schema_Fields() { // Arrange var json = @"{ ""@type"":""Array"", ""elementSchema"":{ ""@type"":""Object"", ""fields"":[ { ""name"":""package"", ""schema"":""string"" }, { ""name"":""installed"", ""schema"":""string"" } ] } }"; var context = new ParserContext { Source = JObject.Parse(json) }; context.Data.Add("SchemaType", typeof(ArraySchemaNode)); var factory = new FieldNodesFactory(); // Act var fieldNodes = factory.CreateFieldNodes(context).ToList(); // Assert fieldNodes.Count.Should().Be(2); var packageField = fieldNodes[0]; packageField.Name.Should().Be("package"); packageField.DisplayName.Should().BeNullOrWhiteSpace(); packageField.DisplayUnit.Should().BeNullOrWhiteSpace(); var packageFieldSchema = (SimpleSchemaNode)packageField.Schema; packageFieldSchema.Name.Should().Be("string"); var installedField = fieldNodes[1]; installedField.Name.Should().Be("installed"); installedField.DisplayName.Should().BeNullOrWhiteSpace(); installedField.DisplayUnit.Should().BeNullOrWhiteSpace(); var installedFieldSchema = (SimpleSchemaNode)installedField.Schema; installedFieldSchema.Name.Should().Be("string"); }
public void Can_Parse_Object_Schema_Fields() { // Arrange var json = @"{ ""@type"": ""Object"", ""fields"": [{ ""name"": ""dateTime"", ""displayName"": ""Date time"", ""schema"": ""dateTime"" }, { ""name"": ""cabinetTemperature"", ""displayName"": ""Cabinet Temperature"", ""displayUnit"": ""C"", ""schema"": ""double"" } ] }"; var context = new ParserContext { Source = JObject.Parse(json) }; context.Data.Add("SchemaType", typeof(ObjectSchemaNode)); var factory = new FieldNodesFactory(); // Act var fieldNodes = factory.CreateFieldNodes(context).ToList(); // Assert fieldNodes.Count.Should().Be(2); var dateTimeField = fieldNodes[0]; dateTimeField.Name.Should().Be("dateTime"); dateTimeField.DisplayName.Should().Be("Date time"); dateTimeField.DisplayUnit.Should().BeNullOrWhiteSpace(); var dateTimeFieldSchema = (SimpleSchemaNode)dateTimeField.Schema; dateTimeFieldSchema.Name.Should().Be("dateTime"); var temperatureField = fieldNodes[1]; temperatureField.Name.Should().Be("cabinetTemperature"); temperatureField.DisplayName.Should().Be("Cabinet Temperature"); temperatureField.DisplayUnit.Should().Be("C"); var temperatureFieldSchema = (SimpleSchemaNode)temperatureField.Schema; temperatureFieldSchema.Name.Should().Be("double"); }