Esempio n. 1
0
        public void TestV3AddGeneratedClientCode_GeneratesCodeForv3_ForVB()
        {
            var serviceName         = "MyService";
            var referenceFolderPath = Path.Combine(TestProjectRootPath, ServicesRootFolder, serviceName);

            Directory.CreateDirectory(referenceFolderPath);
            Project project       = CreateTestProject(TestProjectRootPath, ODataT4CodeGenerator.LanguageOption.VB);
            var     serviceConfig = new ServiceConfiguration()
            {
                Endpoint = Path.Combine(Directory.GetCurrentDirectory(), "CodeGeneration", "SampleServiceV3.xml"),
                GeneratedFileNamePrefix = "Reference",
                EdmxVersion             = Common.Constants.EdmxVersion3
            };
            var serviceInstance = new ODataConnectedServiceInstance()
            {
                ServiceConfig = serviceConfig,
                Name          = serviceName
            };

            var handlerHelper = new TestConnectedServiceHandlerHelper();

            handlerHelper.ServicesRootFolder = ServicesRootFolder;
            ConnectedServiceHandlerContext context = new TestConnectedServiceHandlerContext(serviceInstance, handlerHelper);

            var descriptor = new TestV3CodeGenDescriptor(serviceConfig.Endpoint, context, project);

            descriptor.AddGeneratedClientCodeAsync().Wait();
            var addedFile     = handlerHelper.AddedFiles.FirstOrDefault();
            var generatedCode = File.ReadAllText(addedFile.SourceFile);
            var expectedCode  = GeneratedCodeHelpers.LoadReferenceContent("SampleServiceV3.vb");

            Assert.IsNotNull(addedFile);
            Assert.AreEqual(Path.Combine(TestProjectRootPath, ServicesRootFolder, serviceName, "Reference.vb"), addedFile.CreatedFile);
            GeneratedCodeHelpers.VerifyGeneratedCode(expectedCode, generatedCode);
        }
Esempio n. 2
0
        public void TestV3AddNugetPackageAsync_ShouldInstallODataLibrariesForV3()
        {
            var serviceName         = "MyService";
            var referenceFolderPath = Path.Combine(TestProjectRootPath, ServicesRootFolder, serviceName);

            Directory.CreateDirectory(referenceFolderPath);
            Project project       = CreateTestProject(TestProjectRootPath, ODataT4CodeGenerator.LanguageOption.CSharp);
            var     serviceConfig = new ServiceConfiguration()
            {
                EdmxVersion = Common.Constants.EdmxVersion3
            };
            var serviceInstance = new ODataConnectedServiceInstance()
            {
                ServiceConfig = serviceConfig,
                Name          = serviceName
            };

            var handlerHelper = new TestConnectedServiceHandlerHelper();

            handlerHelper.ServicesRootFolder = ServicesRootFolder;
            ConnectedServiceHandlerContext context = new TestConnectedServiceHandlerContext(serviceInstance, handlerHelper);

            var descriptor = new TestV3CodeGenDescriptor(serviceConfig.Endpoint ?? MetadataUri, context, project);

            descriptor.AddNugetPackagesAsync().Wait();
            var installer = descriptor.PackageInstaller as TestVsPackageInstaller;

            Assert.IsTrue(installer.InstalledPackages.Contains(Common.Constants.V3ClientNuGetPackage));
            Assert.IsTrue(installer.InstalledPackages.Contains(Common.Constants.V3EdmNuGetPackage));
            Assert.IsTrue(installer.InstalledPackages.Contains(Common.Constants.V3ODataNuGetPackage));
            Assert.IsTrue(installer.InstalledPackages.Contains(Common.Constants.V3SpatialNuGetPackage));
        }
        static TestConnectedServiceHandlerContext SetupContext(ServiceConfiguration serviceConfig, string languageOption)
        {
            var serviceInstance = new ODataConnectedServiceInstance()
            {
                Name = "TestService",
                MetadataTempFilePath = "http://service/$metadata",
                ServiceConfig        = serviceConfig
            };

            // Mock EnvDTE.Project
            var mock = new Mock <Project>();

            // Mock Project FullPath
            mock.Setup(p => p.Properties.Item("FullPath").Value).Returns(@"\Path\to\MyProject\TestProject.csproj");
            // Mock Language
            mock.Setup(p => p.CodeModel.Language).Returns(languageOption);
            // Mock Project Name
            mock.Setup(p => p.Name).Returns("TestProject");
            // Mock Project FullName
            mock.Setup(p => p.FullName).Returns(@"\Path\to\MyProject\TestProject.csproj");
            var proj = mock.Object;
            // Cast EnvDTE.Project Object to an object
            var project = (object)proj;

            // Mock IVsHierarchy
            var projectHierarchyMock = new Mock <IVsHierarchy>();

            projectHierarchyMock.Setup(h => h.GetProperty(It.IsAny <uint>(), It.IsAny <int>(), out project));
            var context = new TestConnectedServiceHandlerContext(
                serviceInstance: serviceInstance, projectHierarchy: projectHierarchyMock.Object);

            return(context);
        }
 static TestConnectedServiceHandlerContext SetupContext(ServiceConfiguration serviceConfig)
 {
     var serviceInstance = new ODataConnectedServiceInstance()
     {
         Name = "TestService",
         MetadataTempFilePath = "http://service/$metadata",
         ServiceConfig = serviceConfig
     };
     var projectHierarchyMock = new Mock<IVsHierarchy>();
     object project;
     projectHierarchyMock.Setup(h => h.GetProperty(It.IsAny<uint>(), It.IsAny<int>(), out project));
     var context = new TestConnectedServiceHandlerContext(
         serviceInstance: serviceInstance, projectHierarchy: projectHierarchyMock.Object);
     return context;
 }
Esempio n. 5
0
        static V4CodeGenDescriptor SetupCodeGenDescriptor(ServiceConfiguration serviceConfig, string serviceName, IODataT4CodeGeneratorFactory codeGenFactory, TestConnectedServiceHandlerHelper handlerHelper, ODataT4CodeGenerator.LanguageOption targetLanguage = ODataT4CodeGenerator.LanguageOption.CSharp)
        {
            var referenceFolderPath = Path.Combine(TestProjectRootPath, ServicesRootFolder, serviceName);

            Directory.CreateDirectory(referenceFolderPath);
            Project project         = CreateTestProject(TestProjectRootPath, targetLanguage);
            var     serviceInstance = new ODataConnectedServiceInstance()
            {
                ServiceConfig = serviceConfig,
                Name          = serviceName
            };

            handlerHelper.ServicesRootFolder = ServicesRootFolder;
            ConnectedServiceHandlerContext context = new TestConnectedServiceHandlerContext(serviceInstance, handlerHelper);

            return(new TestV4CodeGenDescriptor(serviceConfig.Endpoint ?? MetadataUri, context, project, codeGenFactory));
        }