public async Task GetTogglesAsync_GetResponseWith2ToggleDtos_Ok()
        {
            var toggles         = ToggleFakeData.GetToggles();
            var unitoOfWorkMock = new Mock <IUnitOfWork <DbContext> >();
            var repositoryMock  = new Mock <IRepository <Toggle> >();

            repositoryMock.Setup(r => r.GetAsync()).Returns(Task.FromResult(toggles));

            var repositoryFactoryMock = new Mock <IRepositoryFactory>();

            repositoryFactoryMock.Setup(r => r.CreateRepository <Toggle>(unitoOfWorkMock.Object)).Returns(repositoryMock.Object);

            var manager = new ToggleBusinessManager(unitoOfWorkMock.Object, repositoryFactoryMock.Object);

            var response = await manager.GetTogglesAsync();

            Assert.IsNotNull(response);
            Assert.IsNotNull(response.IsValid);
            Assert.AreEqual(response.Result.Count(), 2);
            foreach (var item in response.Result)
            {
                Assert.IsNotNull(item.Name);
                Assert.IsNotNull(item.Id);
                Assert.IsNotNull(item.Applications);
            }
        }
        public void DeleteToggleAsync_WithoutId()
        {
            var unitoOfWorkMock = new Mock <IUnitOfWork <DbContext> >();
            var repositoryMock  = new Mock <IRepository <Toggle> >();

            var repositoryFactoryMock = new Mock <IRepositoryFactory>();

            repositoryFactoryMock.Setup(r => r.CreateRepository <Toggle>(unitoOfWorkMock.Object)).Returns(repositoryMock.Object);

            var manager = new ToggleBusinessManager(unitoOfWorkMock.Object, repositoryFactoryMock.Object);

            manager.DeleteToggle(string.Empty);
        }
        public async Task GetTogglesAsyncc_WithoutId()
        {
            var toogle          = ToggleFakeData.GetToggles().FirstOrDefault();
            var unitoOfWorkMock = new Mock <IUnitOfWork <DbContext> >();
            var repositoryMock  = new Mock <IRepository <Toggle> >();

            repositoryMock.Setup(r => r.FindIdAsync(toogle.Id)).Returns(Task.FromResult(toogle));

            var repositoryFactoryMock = new Mock <IRepositoryFactory>();

            repositoryFactoryMock.Setup(r => r.CreateRepository <Toggle>(unitoOfWorkMock.Object)).Returns(repositoryMock.Object);

            var manager = new ToggleBusinessManager(unitoOfWorkMock.Object, repositoryFactoryMock.Object);
            await manager.GetToggleAsync(string.Empty);
        }
        public async Task PutToggleAsync_WithoutToggleDto()
        {
            var toggle          = ToggleFakeData.GetToggle1();
            var unitoOfWorkMock = new Mock <IUnitOfWork <DbContext> >();
            var repositoryMock  = new Mock <IRepository <Toggle> >();

            repositoryMock.Setup(r => r.FindIdAsync(toggle.Id)).Returns(Task.FromResult(toggle));

            var repositoryFactoryMock = new Mock <IRepositoryFactory>();

            repositoryFactoryMock.Setup(r => r.CreateRepository <Toggle>(unitoOfWorkMock.Object)).Returns(repositoryMock.Object);

            var manager = new ToggleBusinessManager(unitoOfWorkMock.Object, repositoryFactoryMock.Object);
            await manager.PutToggleAsync(null);
        }
        public async Task PostToggleAsync_WithoutToggleDtoId()
        {
            var toggle = ToggleFakeData.GetToggleDto1();

            toggle.Id = string.Empty;
            var unitoOfWorkMock = new Mock <IUnitOfWork <DbContext> >();
            var repositoryMock  = new Mock <IRepository <Toggle> >();

            var repositoryFactoryMock = new Mock <IRepositoryFactory>();

            repositoryFactoryMock.Setup(r => r.CreateRepository <Toggle>(unitoOfWorkMock.Object)).Returns(repositoryMock.Object);

            var manager = new ToggleBusinessManager(unitoOfWorkMock.Object, repositoryFactoryMock.Object);
            await manager.PostToggleAsync(toggle);
        }
        public void DeleteToggleAsync_ToogleIdNotExists()
        {
            var toggle          = ToggleFakeData.GetToggle1();
            var unitoOfWorkMock = new Mock <IUnitOfWork <DbContext> >();
            var repositoryMock  = new Mock <IRepository <Toggle> >();

            repositoryMock.Setup(r => r.GetById(toggle.Id)).Returns(default(Toggle));

            var repositoryFactoryMock = new Mock <IRepositoryFactory>();

            repositoryFactoryMock.Setup(r => r.CreateRepository <Toggle>(unitoOfWorkMock.Object)).Returns(repositoryMock.Object);

            var manager = new ToggleBusinessManager(unitoOfWorkMock.Object, repositoryFactoryMock.Object);

            manager.DeleteToggle(toggle.Id);
        }
        public async Task GetToggleAsync_Ok()
        {
            var toggle          = ToggleFakeData.GetToggle1();
            var unitoOfWorkMock = new Mock <IUnitOfWork <DbContext> >();
            var repositoryMock  = new Mock <IRepository <Toggle> >();

            repositoryMock.Setup(r => r.FindIdAsync(toggle.Id)).Returns(Task.FromResult(toggle));

            var repositoryFactoryMock = new Mock <IRepositoryFactory>();

            repositoryFactoryMock.Setup(r => r.CreateRepository <Toggle>(unitoOfWorkMock.Object)).Returns(repositoryMock.Object);

            var manager  = new ToggleBusinessManager(unitoOfWorkMock.Object, repositoryFactoryMock.Object);
            var response = await manager.GetToggleAsync(toggle.Id);

            Assert.IsNotNull(response);
            Assert.IsNotNull(response.IsValid);
            Assert.AreEqual(response.Result.Id, toggle.Id);
        }