コード例 #1
0
        public async Task GetFeatureFlagIntegrationTest()
        {
            //Arrange
            FeatureFlagsStorageTable da = new FeatureFlagsStorageTable(Configuration);
            string name = "UnitTestFeatureFlag01";

            //Act
            FeatureFlag featureFlag = await da.GetFeatureFlag(name);

            //Assert
            Assert.IsTrue(featureFlag != null);
        }
コード例 #2
0
        public async Task GetFeatureFlagsIntegrationTest()
        {
            //Arrange
            FeatureFlagsStorageTable da = new FeatureFlagsStorageTable(Configuration);

            //Act
            IEnumerable <FeatureFlag> featureFlags = await da.GetFeatureFlags();

            //Assert
            Assert.IsTrue(featureFlags != null);
            Assert.IsTrue(featureFlags.Count() >= 0);
        }
コード例 #3
0
        public async Task CheckFeatureFlagProdIntegrationTest()
        {
            //Arrange
            FeatureFlagsStorageTable da = new FeatureFlagsStorageTable(Configuration);
            string name        = "UnitTestFeatureFlag01";
            string environment = "prod";

            //Act
            bool result = await da.CheckFeatureFlag(name, environment);

            //Assert
            Assert.IsTrue(result == false);
        }
コード例 #4
0
        public async Task SaveFeatureFlagsStatePRUnitTest()
        {
            //Arrange
            Mock <IConfiguration>            mockConfiguration = new Mock <IConfiguration>();
            FeatureFlagsStorageTable         context           = new FeatureFlagsStorageTable(mockConfiguration.Object);
            Mock <IFeatureFlagsStorageTable> mock = new Mock <IFeatureFlagsStorageTable>();

            mock.Setup(repo => repo.GetFeatureFlag(It.IsAny <string>())).Returns(Task.FromResult(GetTestRow()));
            FeatureFlagsController controller  = new FeatureFlagsController(mock.Object);
            FeatureFlag            featureFlag = GetTestRow();

            //Act
            bool result = await controller.SaveFeatureFlagState(featureFlag.Name, "pr", true);

            //Assert
            Assert.IsTrue(result == true);
        }
コード例 #5
0
        public async Task GetFeatureFlagUnitTest()
        {
            //Arrange
            Mock <IConfiguration>            mockConfiguration = new Mock <IConfiguration>();
            FeatureFlagsStorageTable         context           = new FeatureFlagsStorageTable(mockConfiguration.Object);
            Mock <IFeatureFlagsStorageTable> mock = new Mock <IFeatureFlagsStorageTable>();

            mock.Setup(repo => repo.GetFeatureFlag(It.IsAny <string>())).Returns(Task.FromResult(GetTestRow()));
            FeatureFlagsController controller = new FeatureFlagsController(mock.Object);
            string featureFlagName            = "abc";

            //Act
            FeatureFlag result = await controller.GetFeatureFlag(featureFlagName);

            //Assert
            Assert.IsTrue(result != null);
            TestFeatureFlag(result ?? new FeatureFlag());
        }
コード例 #6
0
        public async Task GetFeatureFlagsUnitTest()
        {
            //Arrange
            Mock <IConfiguration>            mockConfiguration = new Mock <IConfiguration>();
            FeatureFlagsStorageTable         context           = new FeatureFlagsStorageTable(mockConfiguration.Object);
            Mock <IFeatureFlagsStorageTable> mock = new Mock <IFeatureFlagsStorageTable>();

            mock.Setup(repo => repo.GetFeatureFlags()).Returns(Task.FromResult(GetFeatureFlagsTestData()));
            FeatureFlagsController controller = new FeatureFlagsController(mock.Object);

            //Act
            IEnumerable <FeatureFlag> results = await controller.GetFeatureFlags();

            //Assert
            Assert.IsTrue(results != null);
            Assert.IsTrue(results?.Count() == 1);
            TestFeatureFlag(results.FirstOrDefault());
        }
コード例 #7
0
        public async Task CheckFeatureFlagUnitTest()
        {
            //Arrange
            Mock <IConfiguration>            mockConfiguration = new Mock <IConfiguration>();
            FeatureFlagsStorageTable         context           = new FeatureFlagsStorageTable(mockConfiguration.Object);
            Mock <IFeatureFlagsStorageTable> mock = new Mock <IFeatureFlagsStorageTable>();

            mock.Setup(repo => repo.CheckFeatureFlag(It.IsAny <string>(), It.IsAny <string>())).Returns(Task.FromResult(true));
            FeatureFlagsController controller = new FeatureFlagsController(mock.Object);
            string featureFlagName            = "abc";
            string environment = "def";

            //Act
            bool result = await controller.CheckFeatureFlag(featureFlagName, environment);

            //Assert
            Assert.IsTrue(result == true);
        }
コード例 #8
0
        public async Task CheckFeatureFlagExceptionIntegrationTest()
        {
            //Arrange
            FeatureFlagsStorageTable da = new FeatureFlagsStorageTable(Configuration);
            string name        = "UnitTestFeatureFlag01";
            string environment = "exception";

            //Act
            string exceptionGenerated = "";

            try
            {
                await da.CheckFeatureFlag(name, environment);
            }
            catch (Exception ex)
            {
                exceptionGenerated = ex.Message;
            }

            //Assert
            Assert.AreEqual(exceptionGenerated, "Unknown environment: " + environment + " for feature flag " + name);
        }
コード例 #9
0
        public async Task SaveFeatureFlagIntegrationTest()
        {
            //Arrange
            FeatureFlagsStorageTable da = new FeatureFlagsStorageTable(Configuration);
            string      featureFlagName = "UnitTestFeatureFlag01";
            FeatureFlag featureFlag     = new FeatureFlag(featureFlagName)
            {
                Name          = featureFlagName,
                Description   = "Feature Flag for unit tests",
                PRIsEnabled   = false,
                DevIsEnabled  = true,
                DevViewCount  = 1,
                QAIsEnabled   = false,
                ProdIsEnabled = false,
                LastUpdated   = DateTime.Now
            };

            //Act
            bool result = await da.SaveFeatureFlag(featureFlag);

            //Assert
            Assert.IsTrue(result == true);
        }
コード例 #10
0
        public async Task DeleteFeatureFlagIntegrationTest()
        {
            //Arrange
            FeatureFlagsStorageTable da = new FeatureFlagsStorageTable(Configuration);
            string      featureFlagName = "TestFeatureFlag02";
            FeatureFlag featureFlag     = new FeatureFlag(featureFlagName)
            {
                Name          = featureFlagName,
                Description   = "Feature Flag #2",
                PRIsEnabled   = false,
                DevIsEnabled  = false,
                QAIsEnabled   = false,
                ProdIsEnabled = false,
                LastUpdated   = DateTime.Now
            };

            //Act
            await da.SaveFeatureFlag(featureFlag);

            bool result = await da.DeleteFeatureFlag(featureFlagName);

            //Assert
            Assert.IsTrue(result == true);
        }