//[Test]
        public void CatalogConnectsToDatabaseFailed()
        {
            //Arrange
            IDataBase      database = Substitute.For <IDataBase>();
            ClientsCatalog catalog  = new ClientsCatalog(database);

            database.When(x => x.Connect()).Do(x => database.OnDBFailed += Raise.Event <Action>());

            //Act
            catalog.Initialize();

            //Assert
            database.Received().Connect();
            Assert.IsTrue(catalog.Failed);
            Assert.IsFalse(catalog.IsReady);
        }
        //[Test]
        public void CatalogRetrievesData()
        {
            //Arrange
            IDataBase      database = Substitute.For <IDataBase>();
            ClientsCatalog catalog  = new ClientsCatalog(database);

            catalog.Initialize();
            database.GetEntry(0).Returns("client0");
            database.GetEntry(1).Returns("client1");
            database.GetEntry(2).Returns("client2");

            //Act
            var client0 = catalog.GetClient(0);
            var client1 = catalog.GetClient(1);
            var client2 = catalog.GetClient(2);

            //Assert
            database.Received().GetEntry(0);
            Assert.AreEqual("client0", client0);
            database.Received().GetEntry(1);
            Assert.AreEqual("client1", client1);
            database.Received().GetEntry(2);
            Assert.AreEqual("client2", client2);
        }
        //[Test]
        public void CatalogReturnsHasClientProperly()
        {
            //Arrange
            IDataBase      database = Substitute.For <IDataBase>();
            ClientsCatalog catalog  = new ClientsCatalog(database);

            catalog.Initialize();
            database.Contains(0).Returns(true);
            database.Contains(1).Returns(false);
            database.Contains(2).Returns(true);

            //Act
            bool containsClient0 = catalog.HasClient(0);
            bool containsClient1 = catalog.HasClient(1);
            bool containsClient2 = catalog.HasClient(2);

            //Assert
            database.Received().Contains(0);
            Assert.IsTrue(containsClient0);
            database.Received().Contains(1);
            Assert.IsFalse(containsClient1);
            database.Received().Contains(2);
            Assert.IsTrue(containsClient2);
        }