public void TestCreateConstructor()
 {
     var decorator = new StandardConstructorResourceDecorator();
     CodeConstructor constructor = decorator.CreateConstructor(ServiceClassName, CreateEmptyResource());
     Assert.AreEqual(1, constructor.Parameters.Count);
     var param = constructor.Parameters[0];
     Assert.AreEqual(ServiceClassName, param.Type.BaseType);
     Assert.AreEqual(1, constructor.Statements.Count);
 }
 public void TestCreateConstructor()
 {
     var decorator = new StandardConstructorResourceDecorator();
     CodeConstructor constructor = decorator.CreateConstructor(ServiceClassName, CreateEmptyResource());
     Assert.AreEqual(2, constructor.Parameters.Count);
     var param = constructor.Parameters[0];
     Assert.AreEqual(ServiceClassName, param.Type.BaseType);
     Assert.AreEqual(2, constructor.Statements.Count);
     param = constructor.Parameters[1];
     Assert.AreEqual(typeof(Google.Apis.Authentication.IAuthenticator).FullName, param.Type.BaseType);
 }
        public void TestCreateSubresourceStatement()
        {
            var decorator = new StandardConstructorResourceDecorator();
            CodeStatementCollection statements = decorator.CreateSubresourceCreateStatements(CreateNonEmptyResource());
            Assert.AreEqual(2, statements.Count);

            Assert.That(statements[0], Is.InstanceOf<CodeAssignStatement>());
            CodeAssignStatement firstStatement = (CodeAssignStatement) statements[0];

            // Check the field name
            Assert.That(firstStatement.Left, Is.InstanceOf<CodeFieldReferenceExpression>());
            Assert.That(((CodeFieldReferenceExpression)firstStatement.Left).FieldName, Is.EqualTo("_Subresource"));

            // Check the constructor
            var right = firstStatement.Right as CodeObjectCreateExpression;
            Assert.IsNotNull(right);
            Assert.That(right.CreateType.BaseType, Is.EqualTo("SubresourceResource"));
        }
        public void TestDecorateClass()
        {
            var decorator = new StandardConstructorResourceDecorator();
            var resourceClass = new CodeTypeDeclaration(ResourceClassName);
            var resource = CreateResourceDiscoveryV_1_0(ResourceName, ResourceAsJson);
            decorator.DecorateClass(resource, null, resourceClass, null, ServiceClassName, null);

            Assert.AreEqual(1, resourceClass.Members.Count);
            var member = resourceClass.Members[0];

            Assert.IsInstanceOf(typeof(CodeConstructor), member);
            // Constructor is tested in TestCreateConstructor
        }
 public void TestCreateConstructorWithSubresources()
 {
     var decorator = new StandardConstructorResourceDecorator();
     CodeConstructor constructor = decorator.CreateConstructor(ServiceClassName, CreateNonEmptyResource());
     Assert.AreEqual(4, constructor.Statements.Count);
 }