public void Register_ThrowsException_WithMultipleRegistrationOfSameService()
        {
            MockService     service         = new MockService();
            LifetimeManager lifetimeManager = new LifetimeManager();

            lifetimeManager.Register(service);

            var e = Assert.Throws <InvalidOperationException>(() => lifetimeManager.Register(service));

            Assert.Equal("Cannot register the service as it is already registered.", e.Message);
        }
        public void Register_ThrowsException_IfServiceIsNull()
        {
            LifetimeManager lifetimeManager = new LifetimeManager();

            var e = Assert.Throws <ArgumentNullException>(() => lifetimeManager.Register(null));

            Assert.Equal("Value cannot be null.\r\nParameter name: service", e.Message);
            Assert.Equal("service", e.ParamName);
        }
        public void Unregister_ThrowsException_IfServiceIsNotRegistered()
        {
            MockService     service1        = new MockService();
            MockService     service2        = new MockService();
            LifetimeManager lifetimeManager = new LifetimeManager();

            lifetimeManager.Register(service1);

            var e = Assert.Throws <InvalidOperationException>(() => lifetimeManager.Unregister(service2));

            Assert.Equal("Cannot unregister the service as it is not currently registered.", e.Message);
        }