public void RegisterId()
        {
            var q = SomeQuery();

            var sut = new ScopedNameResolver();

            sut.Register("x", q);

            Assert.True(sut.IsExisting("x"));
            Assert.AreEqual(q, sut.Find("x"));
        }
        public void RegisterType()
        {
            var q = SomeQuery();

            var sut = new ScopedNameResolver();

            sut.Register(TypeUnknown, q);

            Assert.True(sut.IsExisting(TypeUnknown));
            Assert.AreEqual(q, sut.Find(TypeUnknown));
        }
        public void LookupWorksInParentScope_Id()
        {
            var q = SomeQuery();

            var parent = new ScopedNameResolver();

            parent.Register("x", q);
            var sut = new ScopedNameResolver(parent);

            Assert.True(sut.IsExisting("x"));
            Assert.AreEqual(q, sut.Find("x"));
        }
        public void ReregisterDoesNotReplaceParentRegistration_Id()
        {
            var q1 = SomeQuery();
            var q2 = SomeQuery();

            var parent = new ScopedNameResolver();

            parent.Register("x", q1);
            var sut = new ScopedNameResolver(parent);

            sut.Register("x", q2);

            Assert.AreEqual(q1, parent.Find("x"));
            Assert.AreEqual(q2, sut.Find("x"));
        }