public void ConvertsAdmins()
        {
            // Arrange
            var client = new Mock <IFeatureFlagClient>();

            var admin = new User
            {
                Username     = "******",
                EmailAddress = "*****@*****.**",
                Roles        = new List <Role>
                {
                    new Role {
                        Name = Constants.AdminRoleName
                    }
                }
            };

            // Act
            FeatureFlagClientExtensions.IsEnabled(client.Object, "flight", admin, defaultValue: true);

            // Assert
            client.Verify(
                c => c.IsEnabled(
                    "flight",
                    It.Is <IFlightUser>(u =>
                                        u.Username == "b" &&
                                        u.EmailAddress == "*****@*****.**" &&
                                        u.IsSiteAdmin == true),
                    true));
        }
        public void ConvertsUser()
        {
            // Arrange
            var client = new Mock <IFeatureFlagClient>();

            var user = new User
            {
                Username     = "******",
                EmailAddress = "*****@*****.**",
                Roles        = new List <Role>()
            };

            // Act
            FeatureFlagClientExtensions.IsEnabled(client.Object, "flight", user, defaultValue: true);

            // Assert
            client.Verify(
                c => c.IsEnabled(
                    "flight",
                    It.Is <IFlightUser>(u =>
                                        u.Username == "a" &&
                                        u.EmailAddress == "*****@*****.**" &&
                                        u.IsSiteAdmin == false),
                    true));
        }
        public void ConvertsAnonymousUser()
        {
            // Arrange - anonymous users are represented as a null user object
            var client = new Mock <IFeatureFlagClient>();

            User user = null;

            // Act
            FeatureFlagClientExtensions.IsEnabled(client.Object, "flight", user, defaultValue: true);

            // Assert
            client.Verify(
                c => c.IsEnabled(
                    "flight",
                    It.Is <IFlightUser>(u => u == null),
                    true));
        }