Exemplo n.º 1
0
 public void GetValueNameTest()
 {
     Assert.Throws <ArgumentNullException>(() => ScopeEnumDecorator.GetValueName(null));
     Assert.Throws <ArgumentNullException>(() => ScopeEnumDecorator.GetValueName(new Scope()));
     Assert.AreEqual("test", ScopeEnumDecorator.GetValueName(new Scope {
         ID = "test"
     }));
     Assert.AreEqual("123/456/678", ScopeEnumDecorator.GetValueName(new Scope {
         ID = "123/456/678"
     }));
     Assert.AreEqual(
         "http://example.com/", ScopeEnumDecorator.GetValueName(new Scope {
         ID = "http://example.com/"
     }));
     Assert.AreEqual("test", ScopeEnumDecorator.GetValueName(new Scope {
         ID = "http://example.com/test"
     }));
     Assert.AreEqual(
         "http://example.com/te", ScopeEnumDecorator.GetValueName(new Scope {
         ID = "http://example.com/te"
     }));
     Assert.AreEqual(
         "test", ScopeEnumDecorator.GetValueName(new Scope {
         ID = "http://example.com/auth/test"
     }));
     Assert.AreEqual(
         "test", ScopeEnumDecorator.GetValueName(new Scope {
         ID = "http://example.com/auth/scopes/test"
     }));
 }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        public void GenerateScopeEnumerationTest()
        {
            // Test an empty enumeration:
            CodeTypeDeclaration decl = ScopeEnumDecorator.GenerateScopeEnumeration(Enumerable.Empty <Scope>());

            Assert.IsTrue(decl.IsEnum);
            Assert.AreEqual(0, decl.Members.Count);
            Assert.AreEqual(0, decl.Members.Count);

            // Test a enumeration with two elements:
            Scope[] scopes = new[]
            {
                new Scope {
                    ID = "FO_BA"
                }, new Scope {
                    ID = "b", Description = "b description"
                },
                new Scope {
                    ID = "https://example.com/test"
                }
            };
            decl = ScopeEnumDecorator.GenerateScopeEnumeration(scopes);
            Assert.AreEqual(3, decl.Members.Count);
            Assert.AreEqual("FO_BA", decl.Members[0].Name);
            Assert.AreEqual("B", decl.Members[1].Name);
            Assert.AreEqual("Test", decl.Members[2].Name);
            Assert.AreEqual(1, decl.Members[0].CustomAttributes.Count);
        }
Exemplo n.º 4
0
        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");
        }