Пример #1
0
        public void ImportSolutionAsyncSuccess()
        {
            string expectedUniqueName       = "orgtest1";
            string expectedDomainName       = "orgtest5";
            string expectedSolutionFilePath = @"./data/templates/requests/dynamicsCrm/dummySolution.zip";
            string expectedRequestUri       = $"https://{expectedDomainName}.crm.dynamics.com/api/data/v9.0/ImportSolution";

            HttpRequestMessage expectedRequest = TestHelper.CreateHttpRequest(
                HttpMethod.Post,
                expectedRequestUri);

            _httpClient.RegisterExpectedRequest(new ExpectedRequest(expectedRequest));

            HttpResponseMessage expectedResponse = TestHelper.CreateHttpResponse(
                HttpStatusCode.NoContent,
                null,
                null,
                "application/json",
                null);

            _httpClient.RegisterExpectedResponse(
                expectedRequestUri,
                new ExpectedResponse(expectedResponse));

            IDynamicsCrmClient client = new DynamicsCrmClient(
                expectedUniqueName,
                expectedDomainName,
                _tokenProvider);

            string response = client.ImportSolutionAsync(expectedSolutionFilePath, false).Result;

            Assert.IsNull(response, "The response should not be null!");
        }
        private object CheckDynamics365CRMSolutionAsync(OperationRunner context)
        {
            DynamicsCrmClient client = new DynamicsCrmClient(
                DataModel.InstallationConfiguration.PowerApps.SelectedEnvironment.OrganizationName,
                DataModel.InstallationConfiguration.PowerApps.SelectedEnvironment.OrganizationDomainName,
                WizardContext.TokenProvider);

            return(client.GetSolutionAsync(DataModel.InstallationConfiguration.DynamicsCrm.SolutionUniqueName).Result);
        }
Пример #3
0
        public void GetSolutionsAsyncSuccess()
        {
            string expectedUniqueName         = "orgtest1";
            string expectedDomainName         = "orgtest5";
            string expectedOrgId              = Guid.NewGuid().ToString();
            string expectedSolutionId         = Guid.NewGuid().ToString();
            string expectedSolutionUniqueName = "TestSolution";
            string expectedSolutionVersion    = "1.0.0.5";
            string expectedRequestUri         = $"https://{expectedDomainName}.crm.dynamics.com/api/data/v9.0/solutions";
            string responseFilePath           = @"./data/templates/responses/dynamicsCrm/getSolutions.json";

            HttpRequestMessage expectedRequest = TestHelper.CreateHttpRequest(
                HttpMethod.Get,
                expectedRequestUri);

            _httpClient.RegisterExpectedRequest(new ExpectedRequest(expectedRequest));

            HttpResponseMessage expectedResponse = TestHelper.CreateHttpResponse(
                HttpStatusCode.OK,
                null,
                responseFilePath,
                "application/json",
                new Dictionary <string, string>()
            {
                { "orgId", expectedOrgId },
                { "solutionId", expectedSolutionId },
                { "uniqueName", expectedSolutionUniqueName },
                { "version", expectedSolutionVersion },
            });

            _httpClient.RegisterExpectedResponse(
                expectedRequestUri,
                new ExpectedResponse(expectedResponse));

            IDynamicsCrmClient client = new DynamicsCrmClient(
                expectedUniqueName,
                expectedDomainName,
                _tokenProvider);

            DynamicsCrmValueResponse <DynamicsCrmSolution> response = client.GetSolutionsAsync().Result;

            Assert.IsNotNull(response, "The response should not be null!");
            Assert.IsNotNull(response.Value, "The response Value member should not be null!");
            Assert.AreEqual(1, response.Value.Length, $"Unexpected number of solutions returned ('1' != '{response.Value.Length}')!");
            Assert.AreEqual(expectedSolutionId, response.Value[0].SolutionId, $"Unexpected solution id ('{expectedSolutionId}' != '{response.Value[0].SolutionId}')");
            Assert.AreEqual(expectedSolutionUniqueName, response.Value[0].UniqueName, $"Unexpected solution id ('{expectedSolutionUniqueName}' != '{response.Value[0].UniqueName}')");
            Assert.AreEqual(expectedSolutionVersion, response.Value[0].Version, $"Unexpected solution id ('{expectedSolutionVersion}' != '{response.Value[0].Version}')");
        }
Пример #4
0
        public void GetUserIdAsyncSuccess()
        {
            string expectedUniqueName = "orgtest1";
            string expectedDomainName = "orgtest5";
            string expectedObjectId   = Guid.NewGuid().ToString();
            string expectedUserId     = Guid.NewGuid().ToString();
            string expectedOrgId      = Guid.NewGuid().ToString();
            string expectedRequestUri = $"https://{expectedDomainName}.crm.dynamics.com/api/data/v9.0/WhoAmI";
            string responseFilePath   = @"./data/templates/responses/dynamicsCrm/whoAmI.json";

            HttpRequestMessage expectedRequest = TestHelper.CreateHttpRequest(
                HttpMethod.Get,
                expectedRequestUri);

            _httpClient.RegisterExpectedRequest(new ExpectedRequest(expectedRequest));

            HttpResponseMessage expectedResponse = TestHelper.CreateHttpResponse(
                HttpStatusCode.OK,
                null,
                responseFilePath,
                "application/json",
                new Dictionary <string, string>()
            {
                { "objectId", expectedObjectId },
                { "userId", expectedUserId },
                { "orgId", expectedOrgId },
            });

            _httpClient.RegisterExpectedResponse(
                expectedRequestUri,
                new ExpectedResponse(expectedResponse));

            IDynamicsCrmClient client = new DynamicsCrmClient(
                expectedUniqueName,
                expectedDomainName,
                _tokenProvider);

            string response = client.GetUserIdAsync().Result;

            Assert.IsNotNull(response, "The response should not be null!");
            Assert.AreEqual(expectedUserId, response, $"Unexpected user id ('{expectedUserId}' != '{response}')");
        }
Пример #5
0
        /// <summary>
        /// Initializes a new instance of the <see cref="DeployDynamicsCRMSolutionInstallationControl"/> class.
        /// </summary>
        /// <param name="model">The view model to bind to this control.</param>
        /// <param name="context">The wizard context instance.</param>
        public DeployDynamicsCRMSolutionInstallationControl(
            InstallerModel model,
            InstallerWizard context)
            : base(model, context)
        {
            InitializeComponent();

            SequentialRunner = new OperationRunner(
                model.OperationsProgress,
                this,
                WizardContext.LogFileStream);

            LogOutputControl        = DetailsRichTextBox;
            SequentialRunner.OnLog += WriteLog;

            SequentialRunner.OnComplete += SequentialRunner_OnComplete;

            DataModel.CurrentOperationRunner = SequentialRunner;

            _dynamicsCrmClient = new DynamicsCrmClient(
                DataModel.InstallationConfiguration.PowerApps.SelectedEnvironment.OrganizationName,
                DataModel.InstallationConfiguration.PowerApps.SelectedEnvironment.OrganizationDomainName,
                WizardContext.TokenProvider);

            _dynamicsCrmClient.SetLogger(SequentialRunner.Logger);

            DataModel.SuccessFinalStatusMessage = "Advocacy Platform installed successfully.";
            DataModel.FailureFinalStatusMessage = "Advocacy Platform failed to install.";

            // TODO: Data binding isn't working
            WizardProgress.PagesSource = DataModel.Progress;
            OperationsProgressControl.OperationsSource = DataModel.OperationsProgress;

            QueueOperations();

            SequentialRunner.BeginOperationsAsync();
        }
Пример #6
0
        public void UpdateSolutionAsyncSuccess()
        {
            string expectedUniqueName         = "orgtest1";
            string expectedDomainName         = "orgtest5";
            string expectedOrgId              = Guid.NewGuid().ToString();
            string expectedSolutionId         = Guid.NewGuid().ToString();
            string expectedSolutionUniqueName = "TestSolution";
            string expectedSolutionVersion    = "1.0.0.5";
            string expectedSolutionFilePath   = @"./data/templates/requests/dynamicsCrm/dummySolution.zip";
            string expectedRequestUri         = $"https://{expectedDomainName}.crm.dynamics.com/api/data/v9.0/solutions?$filter=uniquename%20eq%20'{expectedSolutionUniqueName}'";
            string expectedRequestUri2        = $"https://{expectedDomainName}.crm.dynamics.com/api/data/v9.0/ImportSolution";
            string responseFilePath           = @"./data/templates/responses/dynamicsCrm/getSolutions.json";

            HttpRequestMessage expectedRequest = TestHelper.CreateHttpRequest(
                HttpMethod.Get,
                expectedRequestUri);

            _httpClient.RegisterExpectedRequest(new ExpectedRequest(expectedRequest));
            HttpRequestMessage expectedRequest2 = TestHelper.CreateHttpRequest(
                HttpMethod.Post,
                expectedRequestUri2);

            _httpClient.RegisterExpectedRequest(new ExpectedRequest(expectedRequest2));
            _httpClient.RegisterExpectedRequest(new ExpectedRequest(expectedRequest));

            HttpResponseMessage expectedResponse = TestHelper.CreateHttpResponse(
                HttpStatusCode.OK,
                null,
                responseFilePath,
                "application/json",
                new Dictionary <string, string>()
            {
                { "orgId", expectedOrgId },
                { "solutionId", expectedSolutionId },
                { "uniqueName", expectedSolutionUniqueName },
                { "version", expectedSolutionVersion },
            });

            _httpClient.RegisterExpectedResponse(
                expectedRequestUri,
                new ExpectedResponse(expectedResponse));
            HttpResponseMessage expectedResponse2 = TestHelper.CreateHttpResponse(
                HttpStatusCode.NoContent,
                null,
                null,
                "application/json",
                null);

            _httpClient.RegisterExpectedResponse(
                expectedRequestUri2,
                new ExpectedResponse(expectedResponse2));
            _httpClient.RegisterExpectedResponse(
                expectedRequestUri,
                new ExpectedResponse(expectedResponse));

            IDynamicsCrmClient client = new DynamicsCrmClient(
                expectedUniqueName,
                expectedDomainName,
                _tokenProvider);

            DynamicsCrmSolution response = client.UpdateSolutionAsync(
                expectedSolutionUniqueName,
                expectedSolutionFilePath).Result;

            Assert.IsNotNull(response, "The response should not be null!");
            Assert.AreEqual(expectedSolutionId, response.SolutionId, $"Unexpected solution id ('{expectedSolutionId}' != '{response.SolutionId}')");
            Assert.AreEqual(expectedSolutionUniqueName, response.UniqueName, $"Unexpected solution id ('{expectedSolutionUniqueName}' != '{response.UniqueName}')");
            Assert.AreEqual(expectedSolutionVersion, response.Version, $"Unexpected solution id ('{expectedSolutionVersion}' != '{response.Version}')");
        }