public async void GetExternalServiceByName_ReturnNull()
        {
            var externalServiceService = new ExternalServiceService(_externalServiceRepository.Object, _secretVault.Object);
            var externalService        = await externalServiceService.GetExternalServiceByName("vstsBuild");

            Assert.Null(externalService);
        }
        public void AddExternalService_InvalidProject()
        {
            var externalServiceService = new ExternalServiceService(_externalServiceRepository.Object, _secretVault.Object);
            var exception = Record.ExceptionAsync(() => externalServiceService.AddExternalService("Github-Default", null, 1, "config", 1, false));

            Assert.IsType <DuplicateExternalServiceException>(exception?.Result);
        }
        public async void GetExternalServices_ReturnEmpty()
        {
            var externalServiceService = new ExternalServiceService(_externalServiceRepository.Object, _secretVault.Object);
            var externalServices       = await externalServiceService.GetExternalServices(2);

            Assert.Empty(externalServices);
        }
        public async void DeleteExternalService_ValidItem()
        {
            var externalServiceService = new ExternalServiceService(_externalServiceRepository.Object, _secretVault.Object);
            await externalServiceService.DeleteExternalService(1);

            Assert.Empty(_data);
            _secretVault.Verify(s => s.Delete("Github-Default", It.IsAny <CancellationToken>()), Times.Once);
        }
        public async void AddExternalService_ValidItem()
        {
            var externalServiceService = new ExternalServiceService(_externalServiceRepository.Object, _secretVault.Object);
            int newId = await externalServiceService.AddExternalService("vstsBuild", null, 1, "config", 1, false);

            Assert.True(newId > 1);
            Assert.True(_data.Count > 1);
            _secretVault.Verify(s => s.Add("vstsBuild", "config", It.IsAny <CancellationToken>()), Times.Once);
        }
        public async void GetExternalServiceByName_ReturnItem()
        {
            var externalServiceService = new ExternalServiceService(_externalServiceRepository.Object, _secretVault.Object);
            var entity = await externalServiceService.GetExternalServiceByName("Github-Default");

            Assert.NotNull(entity);
            Assert.Equal(1, entity.Id);
            _secretVault.Verify(s => s.Get("Github-Default", It.IsAny <CancellationToken>()), Times.Once);
        }
        public async void UpdateExternalService_ValidItem()
        {
            var externalServiceService = new ExternalServiceService(_externalServiceRepository.Object, _secretVault.Object);
            await externalServiceService.UpdateExternalService(new ExternalService
            {
                Id           = 1,
                Description  = "Updated description",
                ConfigString = "Updated Config"
            });

            var externalService = _data.First(d => d.Id == 1);

            Assert.Equal("Updated description", externalService.Description);
            _secretVault.Verify(s => s.Update("Github-Default", "Updated Config", It.IsAny <CancellationToken>()), Times.Once);
        }