public void CompileTest()
        {
            var decorator = new ScopeEnumDecorator();
            var service = new MockService();
            var decl = new CodeTypeDeclaration("TestClass");

            // Test with a simple scope enumeration
            service.Scopes.Add("a", new Scope { ID = "a", Description = "description A" });
            service.Scopes.Add("b", new Scope { ID = "b", Description = "description B" });

            Scope complex = new Scope() { ID = "https://example.com/test/auth123" };
            service.Scopes.Add(complex.ID, complex);

            decorator.DecorateClass(service, decl);
            CheckCompile(decl, false, "Failed To Compile ScopeEnumDecorator");
        }
        public void DecorateClassTest()
        {
            var decorator = new ScopeEnumDecorator();
            var service = new MockService();
            var decl = new CodeTypeDeclaration();

            // Confirm that no enumeration is added if 0 scopes are available.
            decorator.DecorateClass(service, decl);
            Assert.AreEqual(0, decl.Members.Count);

            // Confirm that an enumeration is added if scopes are available.
            service.Scopes.Add("a", new Scope { ID = "a", Description = "description A" });
            service.Scopes.Add("b", new Scope { ID = "b", Description = "description B" });
            decorator.DecorateClass(service, decl);
            Assert.AreEqual(1, decl.Members.Count);
            Assert.IsInstanceOf<CodeTypeDeclaration>(decl.Members[0]);

            CodeTypeDeclaration enumType = decl.Members[0] as CodeTypeDeclaration;
            Assert.IsNotNull(enumType);
            Assert.IsTrue(enumType.IsEnum);
            Assert.AreEqual(ScopeEnumDecorator.EnumName, enumType.Name);
        }