Exemplo n.º 1
0
        public void TestInvalidUpgradeApplication()
        {
            string appTypeName            = "InvalidAppTypeName";
            string currentInstanceVersion = "1";
            string targetTypeVersion      = "InvalidAppTypeVersion";
            string appId = "AppId_App0";
            Dictionary <string, string> parameters = new Dictionary <string, string>();
            string output = ".\\";

            ImageBuilderExeTestWrapper exeWrapper = new ImageBuilderExeTestWrapper(this.imageStore);

            int exitCode = exeWrapper.UpgradeApplication(
                appTypeName,
                currentInstanceVersion,
                targetTypeVersion,
                appId,
                parameters,
                output);

            Verify.AreEqual(exitCode, ImageBuilderExeTestWrapper.ImageBuilderErrorCode);
        }
Exemplo n.º 2
0
        public void TestUpgradeApplication()
        {
            BuildLayoutInfo buildLayoutInfo = new BuildLayoutInfo(this.imageStore);
            string          buildPath       = buildLayoutInfo.CreateBuildLayout();

            ImageBuilderExeTestWrapper exeWrapper = new ImageBuilderExeTestWrapper(this.imageStore);

            int exitCode = exeWrapper.GetApplicationType(buildPath);

            Verify.AreEqual(exitCode, 0);

            string applicationId = Guid.NewGuid().ToString();
            string nameUri       = string.Format(CultureInfo.InvariantCulture, "fabric:/{0}", buildLayoutInfo.ApplicationManifestType.ApplicationTypeName);

            Dictionary <string, string> userParameters = new Dictionary <string, string>(StringComparer.OrdinalIgnoreCase);

            userParameters.Add("portvalue", "500");
            userParameters.Add("DomainGroup", "DomainGroup");
            userParameters.Add("MyUserParam", "Foo");
            userParameters.Add("InstanceCountParam", "100");

            exitCode = exeWrapper.BuildApplication(
                buildLayoutInfo.ApplicationManifestType.ApplicationTypeName,
                buildLayoutInfo.ApplicationManifestType.ApplicationTypeVersion,
                applicationId,
                nameUri,
                userParameters,
                null);

            Verify.AreEqual(exitCode, 0);

            buildLayoutInfo.DeleteBuildLayout();

            // Upgrade Application
            Collection <object> updatedServiceTypes = new Collection <object>(buildLayoutInfo.ServiceManifestTypes[0].ServiceTypes.ToList());

            updatedServiceTypes.Add(new StatelessServiceTypeType()
            {
                ServiceTypeName = "UpdatedServiceType"
            });
            buildLayoutInfo.ServiceManifestTypes[0].ServiceTypes = updatedServiceTypes.ToArray();
            buildLayoutInfo.ServiceManifestTypes[0].Version      = "1.1";

            buildLayoutInfo.ApplicationManifestType.ServiceManifestImport[0].ServiceManifestRef.ServiceManifestVersion = "1.1";
            buildLayoutInfo.ApplicationManifestType.ServiceTemplates       = null;
            buildLayoutInfo.ApplicationManifestType.DefaultServices        = null;
            buildLayoutInfo.ApplicationManifestType.ApplicationTypeVersion = "2.0";

            string updatedBuildPath = buildLayoutInfo.CreateBuildLayout();

            exitCode = exeWrapper.GetApplicationType(buildPath);
            Verify.AreEqual(exitCode, 0);

            string outputFolder = "CMUpdatedOutput";

            exitCode = exeWrapper.UpgradeApplication(
                buildLayoutInfo.ApplicationManifestType.ApplicationTypeName,
                "1",
                buildLayoutInfo.ApplicationManifestType.ApplicationTypeVersion,
                applicationId,
                new Dictionary <string, string>(),
                outputFolder);
            Verify.AreEqual(exitCode, 0);

            Verify.IsTrue(Directory.Exists(outputFolder));

            if (Directory.Exists(outputFolder))
            {
                Directory.Delete(outputFolder, true);
            }
        }