예제 #1
0
        public void Test020()
        {
            using var sut = new TestServiceProvider();
            var expected = new DummyService();

            sut.AddSingleton(expected);

            var actual = sut.GetService <DummyService>();

            actual.ShouldBe(expected);
        }
예제 #2
0
        public void Test010()
        {
            using var sut = new TestServiceProvider();

            sut.Add(new ServiceDescriptor(typeof(DummyService), new DummyService()));
            sut.Insert(0, new ServiceDescriptor(typeof(AnotherDummyService), new AnotherDummyService()));
            sut[1] = new ServiceDescriptor(typeof(DummyService), new DummyService());

            sut.Count.ShouldBe(2);
            sut[0].ServiceType.ShouldBe(typeof(AnotherDummyService));
            sut[1].ServiceType.ShouldBe(typeof(DummyService));
        }
예제 #3
0
        public void Test012()
        {
            using var sut = new TestServiceProvider();
            var descriptor   = new ServiceDescriptor(typeof(DummyService), new DummyService());
            var copyToTarget = new ServiceDescriptor[1];

            sut.Add(descriptor);

            sut.IndexOf(descriptor).ShouldBe(0);
            sut.Contains(descriptor).ShouldBeTrue();
            sut.CopyTo(copyToTarget, 0);
            copyToTarget[0].ShouldBe(descriptor);
            sut.IsReadOnly.ShouldBeFalse();
            ((IEnumerable)sut).OfType <ServiceDescriptor>().Count().ShouldBe(1);
        }
예제 #4
0
        public void Test011()
        {
            using var sut = new TestServiceProvider();
            var descriptor        = new ServiceDescriptor(typeof(DummyService), new DummyService());
            var anotherDescriptor = new ServiceDescriptor(typeof(AnotherDummyService), new AnotherDummyService());
            var oneMoreDescriptor = new ServiceDescriptor(typeof(OneMoreDummyService), new OneMoreDummyService());

            sut.Add(descriptor);
            sut.Add(anotherDescriptor);
            sut.Add(oneMoreDescriptor);

            sut.Remove(descriptor);
            sut.Count.ShouldBe(2);

            sut.RemoveAt(1);
            sut.Count.ShouldBe(1);

            sut.Clear();
            sut.ShouldBeEmpty();
        }
예제 #5
0
        public void Test013()
        {
            var descriptor = new ServiceDescriptor(typeof(AnotherDummyService), new AnotherDummyService());

            using var sut = new TestServiceProvider();
            sut.AddSingleton(new DummyService());
            sut.GetService <DummyService>();

            // Try adding
            Should.Throw <InvalidOperationException>(() => sut.Add(descriptor));
            Should.Throw <InvalidOperationException>(() => sut.Insert(0, descriptor));
            Should.Throw <InvalidOperationException>(() => sut[0] = descriptor);

            // Try removing
            Should.Throw <InvalidOperationException>(() => sut.Remove(descriptor));
            Should.Throw <InvalidOperationException>(() => sut.RemoveAt(0));
            Should.Throw <InvalidOperationException>(() => sut.Clear());

            // Verify state
            sut.IsProviderInitialized.ShouldBeTrue();
            sut.IsReadOnly.ShouldBeTrue();
        }
예제 #6
0
        public void Test001()
        {
            using var sut = new TestServiceProvider();

            sut.Count.ShouldBe(0);
        }
예제 #7
0
 /// <summary>
 /// Creates a new instance of the <see cref="ITestContext"/> class.
 /// </summary>
 public TestContextBase()
 {
     Services = new TestServiceProvider();
     Services.AddSingleton <ITestRenderer>(srv => new TestRenderer(srv, srv.GetService <ILoggerFactory>() ?? NullLoggerFactory.Instance));
 }