public void GetSetExtension_Should_Throw_On_Null()
    {
        IResolveFieldContext context = null;

        Should.Throw <ArgumentNullException>(() => context.GetOutputExtension("e"));
        Should.Throw <ArgumentNullException>(() => context.SetOutputExtension("e", 1));

        context = new ResolveFieldContext();
        context.GetOutputExtension("a").ShouldBe(null);
        context.GetOutputExtension("a.b.c.d").ShouldBe(null);
        Should.Throw <ArgumentException>(() => context.SetOutputExtension("e", 1));
    }
    public void GetSetExtension_Should_Get_And_Set_Values()
    {
        _context.GetOutputExtension("a").ShouldBe(null);
        _context.GetOutputExtension("a.b.c.d").ShouldBe(null);

        _context.SetOutputExtension("a", 5);
        _context.GetOutputExtension("a").ShouldBe(5);

        _context.SetOutputExtension("a.b.c.d", "value");
        _context.GetOutputExtension("a.b.c.d").ShouldBe("value");
        var d = _context.GetOutputExtension("a.b").ShouldBeOfType <Dictionary <string, object> >();

        d.Count.ShouldBe(1);

        _context.SetOutputExtension("a.b.c", "override");
        _context.GetOutputExtension("a.b.c.d").ShouldBe(null);
    }