Exemple #1
0
        public void ExtendWithHierarchyFails()
        {
            var environ    = new EnvironBuilder().Build();
            var newEnviron = environ.Extend(new TestDerived());

            Assert.That(newEnviron.Get <TestBase>(), Is.Null);
        }
Exemple #2
0
        public void ExtendWithExplicitHierarchyFails()
        {
            var derived    = new TestDerived();
            var environ    = new EnvironBuilder().Build();
            var newEnviron = environ.Extend <TestBase>(derived);

            Assert.That(newEnviron.Get <TestBase>(), Is.SameAs(derived));
        }
Exemple #3
0
        public void Extend()
        {
            var environ = new EnvironBuilder().Build();

            var newEnviron = environ.Extend <string>("hello");

            Assert.That(newEnviron.Get <string>(), Is.EqualTo("hello"));
        }
Exemple #4
0
        public void GetWithHierarchyFails()
        {
            var environ = new EnvironBuilder()
                          .Add(new TestDerived())
                          .Build();

            Assert.That(environ.Get <TestBase>(), Is.Null);
        }
Exemple #5
0
        public void GetFails()
        {
            var environ = new EnvironBuilder().Build();

            Assert.That(environ.Get <bool>(), Is.False);
            Assert.That(environ.Get <int>, Is.Zero);
            Assert.That(environ.Get <DateTime>, Is.EqualTo(default(DateTime)));
            Assert.That(environ.Get <string>(), Is.Null);
        }
Exemple #6
0
        public void ResolveParametersFails()
        {
            Func <string, int, string> testFn = (string foo, int bar) => $"{foo}-{bar}";
            var environ = new EnvironBuilder().Build();

            Assert.That(
                () => environ.ResolveParameters(testFn.Method.GetParameters()),
                Throws.InstanceOf <CannotFindAssociationException>().With.Property("Message").EqualTo("Cannot translate parameter \"foo\""));
        }
Exemple #7
0
        public void ExtendProducesANewObject()
        {
            var environ = new EnvironBuilder().Build();

            var newEnviron = environ.Extend <string>("hello");

            Assert.That(newEnviron, Is.Not.SameAs(environ));
            Assert.That(environ.Get <string>(), Is.Null);
        }
Exemple #8
0
        public void GetWithExtractor()
        {
            var environ = new EnvironBuilder()
                          .Add <bool>(true)
                          .Add <int>(10)
                          .AddExtractor <string>((env) => $"{env.Get<bool>()}-{env.Get<int>()}")
                          .Build();

            Assert.That(environ.Get <string>(), Is.EqualTo("True-10"));
        }
Exemple #9
0
        public void ExtendWithAttributeShadowsPreviousAssociation()
        {
            var environ = new EnvironBuilder()
                          .Add <OneAttribute, string>("hello")
                          .Build();

            var newEnviron = environ.Extend <OneAttribute, string>("world");

            Assert.That(newEnviron.Get <OneAttribute, string>(), Is.EqualTo("world"));
        }
Exemple #10
0
        public void ExtendWithAttribute()
        {
            var environ = new EnvironBuilder().Build();

            var newEnviron = environ
                             .Extend <OneAttribute, string>("hello")
                             .Extend <TwoAttribute, string>("world");

            Assert.That(newEnviron.Get <OneAttribute, string>(), Is.EqualTo("hello"));
            Assert.That(newEnviron.Get <TwoAttribute, string>(), Is.EqualTo("world"));
        }
Exemple #11
0
        public void GetFailsWithAttribute()
        {
            var environ = new EnvironBuilder()
                          .Add <OneAttribute, bool>(true)
                          .Add <TwoAttribute, string>("true")
                          .Build();

            Assert.That(environ.Get <bool>(), Is.False);
            Assert.That(environ.Get <TwoAttribute, bool>(), Is.False);
            Assert.That(environ.Get <string>(), Is.Null);
            Assert.That(environ.Get <OneAttribute, string>(), Is.Null);
        }
Exemple #12
0
        public void GetWithAttribute()
        {
            var environ = new EnvironBuilder()
                          .Add <OneAttribute, string>("hello")
                          .Add <TwoAttribute, string>("world")
                          .Add <string>("hello world")
                          .Build();

            Assert.That(environ.Get <OneAttribute, string>(), Is.EqualTo("hello"));
            Assert.That(environ.Get <TwoAttribute, string>(), Is.EqualTo("world"));
            Assert.That(environ.Get <string>(), Is.EqualTo("hello world"));
        }
Exemple #13
0
        public void GetMoreComplex()
        {
            var environ = new EnvironBuilder()
                          .Add <string>("hello")
                          .Add <int>(10)
                          .Add <ValueTuple <string, int> >(("hello", 10))
                          .Build();

            Assert.That(environ.Get <string>(), Is.EqualTo("hello"));
            Assert.That(environ.Get <int>(), Is.EqualTo(10));
            Assert.That(environ.Get <ValueTuple <string, int> >(), Is.EqualTo(("hello", 10)));
        }
Exemple #14
0
        public void ResolveParametersWithAttribute()
        {
            var environ = new EnvironBuilder()
                          .Add <OneAttribute, string>("hello")
                          .Add <TwoAttribute, string>("world")
                          .Build();

            var resolvedTestFnParams = environ.ResolveParameters(typeof(EnvironTest).GetMethod("TestFn").GetParameters());

            Assert.That(resolvedTestFnParams, Is.Not.Null);
            Assert.That(resolvedTestFnParams, Has.Length.EqualTo(2));
            Assert.That(resolvedTestFnParams[0], Is.EqualTo("hello"));
            Assert.That(resolvedTestFnParams[1], Is.EqualTo("world"));
        }
Exemple #15
0
        public void ResolveParameters()
        {
            Func <string, int, string> testFn = (string foo, int bar) => $"{foo}-{bar}";
            var environ = new EnvironBuilder()
                          .Add <string>("hello")
                          .Add <int>(10)
                          .Build();

            var resolvedTestFnParams = environ.ResolveParameters(testFn.Method.GetParameters());

            Assert.That(resolvedTestFnParams, Is.Not.Null);
            Assert.That(resolvedTestFnParams, Has.Length.EqualTo(2));
            Assert.That(resolvedTestFnParams[0], Is.EqualTo("hello"));
            Assert.That(resolvedTestFnParams[1], Is.EqualTo(10));
        }
Exemple #16
0
        public void Get()
        {
            var environ = new EnvironBuilder().Add <string>("hello").Build();

            Assert.That(environ.Get <string>(), Is.EqualTo("hello"));
        }