Skip to content

Regression in mapping interfaces, introduced in #649 #755

Closed
@lofcz

Description

Merging of #649 introduced regressions in the mapping of interfaces. A minimal test:

[TestMethod]
public void MappingToInterface_Broken()
{
    SampleInterfaceCls source = new SampleInterfaceCls
    {
        ActivityData = new SampleActivityData
        {
            Data = new SampleActivityParsedData
            {
                Steps = new List<string> { "A", "B", "C" }
            }
        }
    };

    SampleInterfaceCls dest = source.Adapt<SampleInterfaceCls>(); // works pre #649, crashes after
}

public class SampleInterfaceCls
{
    [Newtonsoft.Json.JsonIgnore]
    public IActivityData? ActivityData { get; set; }

    public SampleInterfaceCls()
    {

    }

    public SampleInterfaceCls(IActivityData data)
    {
        SetActivityData(data);
    }

    public void SetActivityData(IActivityData data)
    {
        ActivityData = data;
    }
}

public class SampleActivityData : IActivityData
{
    public SampleActivityParsedData Data { get; set; }
}

public class SampleActivityParsedData
{
    public List<string> Steps { get; set; } = new List<string>();
}

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions