public void NullArrayExtractionTestWithBraces() { const string valueDesription = "Value::Bs[]"; var child = ObjectPropertiesExtractor.ExtractChildObject(new A(), ExcelTemplatePath.FromRawExpression(valueDesription)); child.Should().BeNull(); }
public void AllNullValuesArrayExtractionTest() { const string valueDesription = "Value::Bs[]"; var localModel = new A { Bs = new B[] { null, null, null } }; var child = ObjectPropertiesExtractor.ExtractChildObject(localModel, ExcelTemplatePath.FromRawExpression(valueDesription)); var childArray = child as object[]; childArray.Should().BeEquivalentTo(localModel.Bs); }
public void ComplexObjectsArrayExtractionTest() { const string valueDesription = "Value::Bs[].Cs[]"; var child = ObjectPropertiesExtractor.ExtractChildObject(model, ExcelTemplatePath.FromRawExpression(valueDesription)); var childArray = child as object[]; childArray.Should().NotBeNull(); childArray.Length.Should().Be(2); childArray[0].Should().BeEquivalentTo(model.Bs[0].Cs); childArray[1].Should().BeEquivalentTo(model.Bs[1].Cs); }
private static object ExtractChildIfCorrectDescription(string expression, object model) { var excelTemplatePath = ExcelTemplatePath.FromRawExpression(expression); try { return(ObjectPropertiesExtractor.ExtractChildObject(model, excelTemplatePath)); } catch (ObjectPropertyExtractionException exception) { throw new InvalidOperationException($"Failed to extract child by path '{excelTemplatePath.RawPath}' in model of type {model.GetType()}", exception); } }