コード例 #1
0
        public void TrackViaClient_GetViews_ShouldReturnListOfViews()
        {
            // Assemble
            List <View> views = new List <View>()
            {
                new View("1", "Default Contacts View", "Contact Management - IT"),
                new View("2", "Default Activities View", "Contact Management - IT")
            };

            Mock <IAsyncHttpClientHelper> httpClient = new Mock <IAsyncHttpClientHelper>();

            TestHelper.HttpClient_SetupGetRequest(HttpStatusCode.OK, views, httpClient);

            TrackViaClient client = new TrackViaClient(httpClient.Object, TestHelper.HostName_Fake, TestHelper.ApiKey_Fake);

            // Act
            List <View> viewsResponse = client.getViews();

            // Assert
            viewsResponse.ShouldNotBeNull()
            .Count.ShouldEqual(views.Count);
            for (int i = 0; i < views.Count; i++)
            {
                viewsResponse[i].ShouldNotBeNull().ShouldEqual(views[i]);
            }
        }
        public void IntegrationTest_TrackViaClient_GetDomainRecords_SimpleCrmAccounts()
        {
            TestHelper.EnsureProductionValuesBeforeRunningIntegrationTests(IntegrationTestConfig.TRACKVIA_VIEWID_DEMOSIMPLECRM_ACCOUNTSDEFAULTVIEW <= 0);

            // Assemble
            TrackViaClient client = new TrackViaClient(IntegrationTestConfig.TRACKVIA_HOSTNAME, IntegrationTestConfig.TRACKVIA_USERNAME,
                                                       IntegrationTestConfig.TRACKVIA_PASSWORD, IntegrationTestConfig.TRACKVIA_API_KEY);

            // Act
            DomainRecordSet <TestData.SimpleCrmContact> domainRecordSet = client.getRecords <TestData.SimpleCrmContact>(
                IntegrationTestConfig.TRACKVIA_VIEWID_DEMOSIMPLECRM_ACCOUNTSDEFAULTVIEW);

            // Assert
            domainRecordSet.ShouldNotBeNull()
            .Data.ShouldNotBeNull().ShouldNotBeEmpty();
            domainRecordSet.Count.ShouldBeGreaterThan(1);
            domainRecordSet.Data.Count.ShouldEqual(domainRecordSet.Count);

            for (int i = 0; i < domainRecordSet.Count; i++)
            {
                TestData.SimpleCrmContact Account = domainRecordSet.Data[i];
                Account.ShouldNotBeNull();
                Account.Id.ShouldBeGreaterThan(0);
                Account.AccountName.ShouldNotBeNull().ShouldNotBeEmpty();
                Account.PrimaryContact.ShouldNotBeNull().ShouldNotBeEmpty();
            }
        }
        public void IntegrationTest_TrackViaClient_GetAppList()
        {
            TestHelper.EnsureProductionValuesBeforeRunningIntegrationTests(IntegrationTestConfig.TRACKVIA_VIEWID_WITHATLEASTTWORECORDS <= 0);

            // Assemble

            // Act
            TrackViaClient client = new TrackViaClient(IntegrationTestConfig.TRACKVIA_HOSTNAME, IntegrationTestConfig.TRACKVIA_USERNAME,
                                                       IntegrationTestConfig.TRACKVIA_PASSWORD, IntegrationTestConfig.TRACKVIA_API_KEY);
            RecordSet rsResult = client.getRecords(IntegrationTestConfig.TRACKVIA_VIEWID_WITHATLEASTTWORECORDS);

            // Assert
            rsResult
            .ShouldNotBeNull()
            .Count.ShouldBeGreaterThan(1);
            rsResult.Data
            .ShouldNotBeNull()
            .Count.ShouldEqual(rsResult.Count);

            for (int i = 0; i < rsResult.Count; i++)
            {
                RecordData rd2 = rsResult.Data[i];

                rd2.ShouldNotBeNull();
            }
        }
        public void IntegrationTest_TrackViaClient_GetViewListMatchingName()
        {
            TestHelper.EnsureProductionValuesBeforeRunningIntegrationTests(string.IsNullOrWhiteSpace(
                                                                               IntegrationTestConfig.TRACKVIA_VIEWNAME_THATMATCHES_ATLEASTTWOVIEWS));

            // Assemble
            TrackViaClient client = new TrackViaClient(IntegrationTestConfig.TRACKVIA_HOSTNAME, IntegrationTestConfig.TRACKVIA_USERNAME,
                                                       IntegrationTestConfig.TRACKVIA_PASSWORD, IntegrationTestConfig.TRACKVIA_API_KEY);

            // Act
            var viewsResult = client.getViews("My Accounts");

            // Assert
            viewsResult.ShouldNotBeNull().ShouldNotBeEmpty();
            viewsResult.Count.ShouldBeGreaterThan(1);
            for (int i = 0; i < viewsResult.Count; i++)
            {
                var viewUnderTest = viewsResult[i];
                viewUnderTest.ShouldNotBeNull();
                viewUnderTest.ApplicationName.ShouldNotBeEmpty();
                viewUnderTest.Id.ShouldNotBeEmpty();
                viewUnderTest.Name.ShouldNotBeEmpty();
                Assert.IsTrue(viewUnderTest.Name.Contains("My Accounts"), "returned view does not contain passed string");
            }
        }
コード例 #5
0
        public void TrackViaClient_DeleteFile_ShouldReturnSuccess()
        {
            // Assemble
            Mock <IAsyncHttpClientHelper> httpClient = new Mock <IAsyncHttpClientHelper>();

            TaskCompletionSource <HttpClientResponse> asyncTaskResult = new TaskCompletionSource <HttpClientResponse>();

            asyncTaskResult.SetResult(new HttpClientResponse()
            {
                Content     = null,
                ContentType = HttpClientResponseTypes.none,
                StatusCode  = HttpStatusCode.NoContent
            });

            httpClient.Setup(x => x
                             .SendDeleteRequestAsync(It.IsAny <string>()))
            .Returns(asyncTaskResult.Task);

            TrackViaClient client = new TrackViaClient(httpClient.Object, TestHelper.HostName_Fake, TestHelper.ApiKey_Fake);

            // Act
            client.deleteFile(1L, 1L, "Test File");

            // Assert
        }
コード例 #6
0
        public void TrackViaClient_GetApps_ShouldReturnListOfApps()
        {
            // Assemble
            List <App> apps = new List <App>()
            {
                new App("1", "Contact Management - Construction"),
                new App("2", "Contact Management - IT")
            };

            Mock <IAsyncHttpClientHelper> httpClient = new Mock <IAsyncHttpClientHelper>();

            TestHelper.HttpClient_SetupGetRequest(HttpStatusCode.OK, apps, httpClient);

            TrackViaClient client = new TrackViaClient(httpClient.Object, TestHelper.HostName_Fake, TestHelper.ApiKey_Fake);

            // Act
            List <App> appsResponse = client.getApps();

            // Assert
            appsResponse.ShouldNotBeNull()
            .Count.ShouldEqual(apps.Count);
            for (int i = 0; i < apps.Count; i++)
            {
                appsResponse[i].ShouldNotBeNull().ShouldEqual(apps[i]);
            }
        }
コード例 #7
0
        public void TrackViaClient_CreateRecordBatchAsDomainClass_ShouldCreatedRecords()
        {
            // Assemble
            Record rawRecord = TestData.getUnitTestRecord1();

            TestData.Contact                   contact  = TestData.getUnitTestContact1();
            List <TestData.Contact>            contacts = new List <TestData.Contact>(new TestData.Contact[] { contact });
            DomainRecordSet <TestData.Contact> rs       = new DomainRecordSet <TestData.Contact>(rawRecord.Structure, contacts);

            Mock <IAsyncHttpClientHelper> httpClient = new Mock <IAsyncHttpClientHelper>();

            TestHelper.HttpClient_SetupPostJsonRequest(HttpStatusCode.Created, rs, httpClient);

            TrackViaClient client = new TrackViaClient(httpClient.Object, TestHelper.HostName_Fake, TestHelper.ApiKey_Fake);

            DomainRecordDataBatch <TestData.Contact> batch = new DomainRecordDataBatch <TestData.Contact>(contacts);

            // Act
            DomainRecordSet <TestData.Contact> rsResponse = client.createRecords <TestData.Contact>(1L, batch);

            // Assert
            rsResponse
            .ShouldNotBeNull()
            .Count.ShouldEqual(rs.Count);
            rsResponse.Data
            .ShouldNotBeNull()
            .Count.ShouldEqual(rs.Count);
        }
コード例 #8
0
        public void TrackViaClient_AddFile_ShouldReturnUpdatedRecord()
        {
            // Assemble
            string tempFilePath = System.IO.Path.GetTempFileName();

            System.IO.File.WriteAllText(tempFilePath, "This is only a test");

            Record record = TestData.getUnitTestRecord1();

            Mock <IAsyncHttpClientHelper> httpClient = new Mock <IAsyncHttpClientHelper>();

            TaskCompletionSource <HttpClientResponse> asyncTaskResult = new TaskCompletionSource <HttpClientResponse>();

            asyncTaskResult.SetResult(new HttpClientResponse()
            {
                Content     = JsonConvert.SerializeObject(record),
                ContentType = HttpClientResponseTypes.json,
                StatusCode  = HttpStatusCode.OK
            });

            httpClient.Setup(x => x
                             .SendPostFileRequestAsync(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>()))
            .Returns(asyncTaskResult.Task);

            TrackViaClient client = new TrackViaClient(httpClient.Object, TestHelper.HostName_Fake, TestHelper.ApiKey_Fake);

            // Act
            Record updatedRecord = client.addFile(1L, 1L, "Test File", tempFilePath);

            // Assert
            updatedRecord.ShouldNotBeNull();
            updatedRecord.Data.ShouldNotBeNull();
            updatedRecord.Data[RecordData.INTERNAL_ID_FIELD_NAME].ShouldEqual(record.Data[RecordData.INTERNAL_ID_FIELD_NAME]);
        }
        public void IntegrationTest_TrackViaClient_FindRecords_ShouldReturnListOfRecords()
        {
            TestHelper.EnsureProductionValuesBeforeRunningIntegrationTests(IntegrationTestConfig.TRACKVIA_VIEWID_DEMOSIMPLECRM_ACCOUNTSDEFAULTVIEW <= 0);

            // Assemble
            string searchCriteria = "A";
            int    startIndex     = 0;
            int    maxRecords     = 2;

            TrackViaClient client = new TrackViaClient(IntegrationTestConfig.TRACKVIA_HOSTNAME, IntegrationTestConfig.TRACKVIA_USERNAME,
                                                       IntegrationTestConfig.TRACKVIA_PASSWORD, IntegrationTestConfig.TRACKVIA_API_KEY);

            // Act
            RecordSet rsResult = client.findRecords(IntegrationTestConfig.TRACKVIA_VIEWID_DEMOSIMPLECRM_ACCOUNTSDEFAULTVIEW,
                                                    searchCriteria, startIndex, maxRecords);

            // Assert
            rsResult.ShouldNotBeNull();
            rsResult.Data.ShouldNotBeNull()
            .ShouldNotBeEmpty();
            rsResult.Count.ShouldEqual(2);
            for (int i = 0; i < rsResult.Count; i++)
            {
                var recordUnderTest = rsResult.Data[i];
                recordUnderTest.ShouldNotBeNull();
                recordUnderTest.Id.ShouldBeGreaterThan(0);
            }
        }
コード例 #10
0
        public void TrackViaClient_CreateRecordBatch_ShouldCreatedRecords()
        {
            // Assemble
            RecordSet       rs    = TestData.getUnitTestRecordSet3();
            RecordDataBatch batch = new RecordDataBatch(rs.Data);

            Mock <IAsyncHttpClientHelper> httpClient = new Mock <IAsyncHttpClientHelper>();

            TestHelper.HttpClient_SetupPostJsonRequest(HttpStatusCode.Created, rs, httpClient);

            TrackViaClient client = new TrackViaClient(httpClient.Object, TestHelper.HostName_Fake, TestHelper.ApiKey_Fake);

            // Act
            RecordSet rsResponse = client.createRecords(1L, batch);

            // Assert
            rsResponse
            .ShouldNotBeNull()
            .Count.ShouldEqual(rs.Count);
            rsResponse.Data
            .ShouldNotBeNull()
            .Count.ShouldEqual(rs.Count);

            for (int i = 0; i < rsResponse.Count; i++)
            {
                RecordData rd1 = rs.Data[i];
                RecordData rd2 = rsResponse.Data[i];

                rd2.Id.ShouldEqual(rd1.Id);
            }
        }
        public void IntegrationTest_TrackViaClient_FindDomainRecords_ShouldReturnListOfRecords()
        {
            TestHelper.EnsureProductionValuesBeforeRunningIntegrationTests(IntegrationTestConfig.TRACKVIA_VIEWID_DEMOSIMPLECRM_ACCOUNTSDEFAULTVIEW <= 0);

            // Assemble
            string searchCriteria = "A";
            int    startIndex     = 0;
            int    maxRecords     = 2;

            TrackViaClient client = new TrackViaClient(IntegrationTestConfig.TRACKVIA_HOSTNAME, IntegrationTestConfig.TRACKVIA_USERNAME,
                                                       IntegrationTestConfig.TRACKVIA_PASSWORD, IntegrationTestConfig.TRACKVIA_API_KEY);

            // Act
            DomainRecordSet <TestData.SimpleCrmContact> domainRecordSet = client.findRecords <TestData.SimpleCrmContact>(
                IntegrationTestConfig.TRACKVIA_VIEWID_DEMOSIMPLECRM_ACCOUNTSDEFAULTVIEW,
                searchCriteria, startIndex, maxRecords);

            // Assert
            domainRecordSet.ShouldNotBeNull();
            domainRecordSet.Data.ShouldNotBeNull()
            .ShouldNotBeEmpty();
            domainRecordSet.Count.ShouldEqual(2);
            // Assert

            for (int i = 0; i < domainRecordSet.Count; i++)
            {
                TestData.SimpleCrmContact Account = domainRecordSet.Data[i];
                Account.ShouldNotBeNull();
                Account.Id.ShouldBeGreaterThan(0);
                Account.AccountName.ShouldNotBeNull().ShouldNotBeEmpty();
                Account.PrimaryContact.ShouldNotBeNull().ShouldNotBeEmpty();
            }
        }
        public void IntegrationTest_TrackViaClient_Scenario_CreateAndUpdateRecord_SimpleCRMAccount()
        {
            TestHelper.EnsureProductionValuesBeforeRunningIntegrationTests(IntegrationTestConfig.TRACKVIA_VIEWID_DEMOSIMPLECRM_ACCOUNTSDEFAULTVIEW <= 0);

            TrackViaClient client = new TrackViaClient(IntegrationTestConfig.TRACKVIA_HOSTNAME, IntegrationTestConfig.TRACKVIA_USERNAME,
                                                       IntegrationTestConfig.TRACKVIA_PASSWORD, IntegrationTestConfig.TRACKVIA_API_KEY);

            // Create a record we can update
            Record record = Integration_CreateRecordStep(client);

            // Lets leave one field unchanged, update one field and add a new field value
            RecordData updatedData = new RecordData();

            updatedData.Add("Primary Contact", "Updated Primary Contact");
            updatedData.Add("Contact Phone", "555-555-5555");

            // Act
            Record updatedResult = client.updateRecord(IntegrationTestConfig.TRACKVIA_VIEWID_DEMOSIMPLECRM_ACCOUNTSDEFAULTVIEW,
                                                       record.Data.Id, updatedData);

            // Assert
            updatedResult.ShouldNotBeNull();
            updatedResult.Data.ShouldNotBeNull();
            updatedResult.Data.Id.ShouldEqual(record.Data.Id);
            updatedResult.Data["Account Name"].ShouldEqual(record.Data["Account Name"]);
            updatedResult.Data["Primary Contact"].ShouldEqual(updatedData["Primary Contact"]);
            updatedResult.Data["Contact Phone"].ShouldEqual(updatedData["Contact Phone"]);
        }
コード例 #13
0
        public void TrackViaClient_GetRecords_ShouldReturnListOfRecords()
        {
            // Assemble
            RecordSet rs = TestData.getUnitTestRecordSet1();

            Mock <IAsyncHttpClientHelper> httpClient = new Mock <IAsyncHttpClientHelper>();

            TestHelper.HttpClient_SetupGetRequest(HttpStatusCode.OK, rs, httpClient);

            TrackViaClient client = new TrackViaClient(httpClient.Object, TestHelper.HostName_Fake, TestHelper.ApiKey_Fake);

            // Act
            RecordSet rsResponse = client.getRecords(1L);

            // Assert
            rsResponse
            .ShouldNotBeNull()
            .Count.ShouldEqual(rs.Count);
            rsResponse.Data
            .ShouldNotBeNull()
            .Count.ShouldEqual(rs.Count);

            for (int i = 0; i < rsResponse.Count; i++)
            {
                RecordData rd1 = rs.Data[i];
                RecordData rd2 = rsResponse.Data[i];

                rd2.ShouldNotBeNull().ShouldEqual(rd1);
            }
        }
コード例 #14
0
        public void TrackViaClient_DeleteRecord_ShouldNotBlowUp()
        {
            // Assemble
            RecordSet rs = TestData.getUnitTestRecordSet2();

            Mock <IAsyncHttpClientHelper> httpClient = new Mock <IAsyncHttpClientHelper>();

            TestHelper.HttpClient_SetupDeleteRequest(HttpStatusCode.NoContent, httpClient);

            TrackViaClient client = new TrackViaClient(httpClient.Object, TestHelper.HostName_Fake, TestHelper.ApiKey_Fake);

            // Act
            client.deleteRecord(1L, 1L);
        }
コード例 #15
0
        public void InstantiateClient_SimplifiedParameters_ShouldNotBeNullAndShouldAuthorize()
        {
            //Assemble
            OAuth2Token token = TestHelper.GetTestAuthToken();
            Mock <IAsyncHttpClientHelper> httpClient = TestHelper.CreateMockHttpAuthorization(token);

            // Act
            TrackViaClient client = new TrackViaClient(httpClient.Object, TestHelper.HostName_Fake,
                                                       TestHelper.Username_Fake, TestHelper.ApiKey_Fake, TestHelper.ApiKey_Fake);

            // Assert
            client.ShouldNotBeNull();
            client.ValidateLastGoodTokenIsEqual(token).ShouldBeTrue("last good token does not match expected result");
        }
        public void IntegrationTest_TrackViaClient_CompletePasswordAuthorization()
        {
            TestHelper.EnsureProductionValuesBeforeRunningIntegrationTests();

            // Assemble

            // Act
            TrackViaClient client = new TrackViaClient(IntegrationTestConfig.TRACKVIA_HOSTNAME, IntegrationTestConfig.TRACKVIA_USERNAME,
                                                       IntegrationTestConfig.TRACKVIA_PASSWORD, IntegrationTestConfig.TRACKVIA_API_KEY);

            // Assert
            client.ShouldNotBeNull();
            client.ValidateLastGoodTokenHasNotExpired(DateTime.Now).ShouldBeTrue("last good token should still be valid");
            client.ValidateAccessTokenIsPresent().ShouldBeTrue("access token is not present");
        }
        public void IntegrationTest_TrackViaClient_GetUsers()
        {
            TestHelper.EnsureProductionValuesBeforeRunningIntegrationTests();

            // Assemble
            TrackViaClient client = new TrackViaClient(IntegrationTestConfig.TRACKVIA_HOSTNAME, IntegrationTestConfig.TRACKVIA_USERNAME,
                                                       IntegrationTestConfig.TRACKVIA_PASSWORD, IntegrationTestConfig.TRACKVIA_API_KEY);

            // Act
            List <User> users = client.getUsers(0, 25);

            // Assert
            users.ShouldNotBeNull();
            users.Count.ShouldBeGreaterThan(1);
        }
コード例 #18
0
        public void InstantiateClient_ExpandedParameters_ShouldNotBeNull()
        {
            //Assemble
            string      baseUriPath = "/openapi";
            Scheme      scheme      = Scheme.https;
            int         port        = 80;
            OAuth2Token token       = TestHelper.GetTestAuthToken();
            Mock <IAsyncHttpClientHelper> httpClient = TestHelper.CreateMockHttpAuthorization(token);

            // Act
            TrackViaClient client = new TrackViaClient(httpClient.Object, baseUriPath, scheme, TestHelper.HostName_Fake, port,
                                                       TestHelper.Username_Fake, TestHelper.ApiKey_Fake, TestHelper.ApiKey_Fake);

            // Assert
            client.ShouldNotBeNull();
        }
コード例 #19
0
        public void TrackViaClient_Authorize_ShouldDeserializeJsonAndReturnToken()
        {
            // Assemble
            OAuth2Token token = TestHelper.GetTestAuthToken();

            Mock <IAsyncHttpClientHelper> httpClient = TestHelper.CreateMockHttpAuthorization(token);

            TrackViaClient client = new TrackViaClient(httpClient.Object, TestHelper.HostName_Fake,
                                                       TestHelper.Username_Fake, TestHelper.ApiKey_Fake, TestHelper.ApiKey_Fake);

            // Act
            client.Authorize(TestHelper.Username_Fake, TestHelper.Password_Fake);

            // Assert
            client.ValidateLastGoodTokenIsEqual(token).ShouldBeTrue("last good token does not match expected result");
        }
        public void IntegrationTest_TrackViaClient_Scenario_CreateAndUpdateDeleteRecord_SimpleCRMAccount()
        {
            TestHelper.EnsureProductionValuesBeforeRunningIntegrationTests(IntegrationTestConfig.TRACKVIA_VIEWID_DEMOSIMPLECRM_ACCOUNTSDEFAULTVIEW <= 0);

            TrackViaClient client = new TrackViaClient(IntegrationTestConfig.TRACKVIA_HOSTNAME, IntegrationTestConfig.TRACKVIA_USERNAME,
                                                       IntegrationTestConfig.TRACKVIA_PASSWORD, IntegrationTestConfig.TRACKVIA_API_KEY);

            // Create a record we can update
            Record record = Integration_CreateRecordStep(client);

            // Lets leave one field unchanged, update one field and add a new field value
            Record updatedRecord = Integration_UpdateRecordStep(client, record);

            client.deleteRecord(IntegrationTestConfig.TRACKVIA_VIEWID_DEMOSIMPLECRM_ACCOUNTSDEFAULTVIEW,
                                updatedRecord.Data.Id);
        }
        private static Record Integration_CreateRecordStep(TrackViaClient client)
        {
            RecordData      recordData = TestData.IntegrationTest_SimpleCrmContact_GetCreateRecordData();
            RecordDataBatch rsBatch    = new RecordDataBatch(new RecordData[] { recordData });


            // Act
            RecordSet rsResponse = client.createRecords(IntegrationTestConfig.TRACKVIA_VIEWID_DEMOSIMPLECRM_ACCOUNTSDEFAULTVIEW, rsBatch);

            // Assert
            rsResponse.ShouldNotBeNull();
            rsResponse.Count.ShouldEqual(1);
            rsResponse.Data.ShouldNotBeNull();
            rsResponse.Data[0].Id.ShouldBeGreaterThan(0);
            rsResponse.Data[0].ShouldNotBeNull();

            return(new Record(rsResponse.Structure, rsResponse.Data[0]));
        }
        public void IntegrationTest_TrackViaClient_GetRecord_SimpleCrmAccount()
        {
            TestHelper.EnsureProductionValuesBeforeRunningIntegrationTests(IntegrationTestConfig.TRACKVIA_VIEWID_DEMOSIMPLECRM_ACCOUNTSDEFAULTVIEW <= 0 ||
                                                                           IntegrationTestConfig.TRACKVIA_VIEWID_DEMOSIMPLECRM_ACCOUNTSDEFAULTVIEW_VALIDACCOUNTRECORDID <= 0);

            // Assemble
            TrackViaClient client = new TrackViaClient(IntegrationTestConfig.TRACKVIA_HOSTNAME, IntegrationTestConfig.TRACKVIA_USERNAME,
                                                       IntegrationTestConfig.TRACKVIA_PASSWORD, IntegrationTestConfig.TRACKVIA_API_KEY);

            // Act
            Record record = client.getRecord(IntegrationTestConfig.TRACKVIA_VIEWID_DEMOSIMPLECRM_ACCOUNTSDEFAULTVIEW,
                                             IntegrationTestConfig.TRACKVIA_VIEWID_DEMOSIMPLECRM_ACCOUNTSDEFAULTVIEW_VALIDACCOUNTRECORDID);

            // Assert
            record.ShouldNotBeNull();
            record.Data.ShouldNotBeNull();
            record.Data.Id.ShouldEqual(IntegrationTestConfig.TRACKVIA_VIEWID_DEMOSIMPLECRM_ACCOUNTSDEFAULTVIEW_VALIDACCOUNTRECORDID);
        }
        public void IntegrationTest_TrackViaClient_GetSingleView()
        {
            TestHelper.EnsureProductionValuesBeforeRunningIntegrationTests(string.IsNullOrWhiteSpace(
                                                                               IntegrationTestConfig.TRACKVIA_VIEWNAME_THATMATCHES_ATLEASTONEVIEW));

            // Assemble
            TrackViaClient client = new TrackViaClient(IntegrationTestConfig.TRACKVIA_HOSTNAME, IntegrationTestConfig.TRACKVIA_USERNAME,
                                                       IntegrationTestConfig.TRACKVIA_PASSWORD, IntegrationTestConfig.TRACKVIA_API_KEY);

            // Act
            View viewResult = client.getFirstMatchingView("My Accounts");

            // Assert
            viewResult.ShouldNotBeNull();
            viewResult.ApplicationName.ShouldNotBeEmpty();
            viewResult.Id.ShouldNotBeEmpty();
            viewResult.Name.ShouldEqual("My Accounts");
        }
コード例 #24
0
        public void TrackViaClient_FindRecords_ShouldReturnListOfRecords()
        {
            // Assemble
            string searchCriteria = "dontcare";
            int    startIndex     = 0;
            int    maxRecords     = 25;

            RecordSet rs = TestData.getUnitTestRecordSet1();

            Mock <IAsyncHttpClientHelper>             httpClient      = new Mock <IAsyncHttpClientHelper>();
            TaskCompletionSource <HttpClientResponse> asyncTaskResult = new TaskCompletionSource <HttpClientResponse>();

            asyncTaskResult.SetResult(new HttpClientResponse()
            {
                Content     = JsonConvert.SerializeObject(rs),
                ContentType = HttpClientResponseTypes.json,
                StatusCode  = HttpStatusCode.OK
            });
            httpClient.Setup(x => x
                             .SendGetRequestAsync(It.Is <string>(s => s.Contains("q=" + searchCriteria) && s.Contains("start=" + startIndex) &&
                                                                 s.Contains("max=" + maxRecords))))
            .Returns(asyncTaskResult.Task);

            TrackViaClient client = new TrackViaClient(httpClient.Object, TestHelper.HostName_Fake, TestHelper.ApiKey_Fake);

            // Act
            RecordSet rsResponse = client.findRecords(1L, searchCriteria, startIndex, maxRecords);

            // Assert
            rsResponse
            .ShouldNotBeNull()
            .Count.ShouldEqual(rs.Count);
            rsResponse.Data
            .ShouldNotBeNull()
            .Count.ShouldEqual(rs.Count);

            for (int i = 0; i < rsResponse.Count; i++)
            {
                RecordData rd1 = rs.Data[i];
                RecordData rd2 = rsResponse.Data[i];

                rd2.ShouldNotBeNull().ShouldEqual(rd1);
            }
        }
コード例 #25
0
        public void TrackViaClient_RefreshAccessToken_ShouldReturnNewToken()
        {
            // Assemble
            Mock <IAsyncHttpClientHelper> httpClient = new Mock <IAsyncHttpClientHelper>();

            // Authorization Token
            OAuth2Token token = TestHelper.GetTestAuthToken();
            TaskCompletionSource <HttpClientResponse> asyncAuthorizeTaskResult = new TaskCompletionSource <HttpClientResponse>();

            asyncAuthorizeTaskResult.SetResult(new HttpClientResponse()
            {
                Content     = JsonConvert.SerializeObject(token),
                ContentType = HttpClientResponseTypes.json,
                StatusCode  = HttpStatusCode.OK
            });
            httpClient.Setup(x => x
                             .SendGetRequestAsync(It.Is <string>(s => s.Contains("grant_type=password"))))
            .Returns(asyncAuthorizeTaskResult.Task);

            // Refresh Token
            OAuth2Token refreshToken = TestHelper.GetTestRefreshToken();
            TaskCompletionSource <HttpClientResponse> asyncRefreshTaskResult = new TaskCompletionSource <HttpClientResponse>();

            asyncRefreshTaskResult.SetResult(new HttpClientResponse()
            {
                Content     = JsonConvert.SerializeObject(refreshToken),
                ContentType = HttpClientResponseTypes.json,
                StatusCode  = HttpStatusCode.OK
            });
            httpClient.Setup(x => x
                             .SendGetRequestAsync(It.Is <string>(s => s.Contains("grant_type=refresh_token"))))
            .Returns(asyncRefreshTaskResult.Task);

            // Act
            TrackViaClient client = new TrackViaClient(httpClient.Object, TestHelper.HostName_Fake,
                                                       TestHelper.Username_Fake, TestHelper.ApiKey_Fake, TestHelper.ApiKey_Fake);

            client.Authorize(TestHelper.Username_Fake, TestHelper.Password_Fake);
            client.RefreshAccessToken();

            // Assert
            client.ValidateLastGoodTokenIsEqual(refreshToken).ShouldBeTrue("last good token does not match expected result");
        }
コード例 #26
0
        public void TrackViaClient_GetRecord_ShouldReturnRecord()
        {
            // Assemble
            Record record = TestData.getUnitTestRecord1();

            Mock <IAsyncHttpClientHelper> httpClient = new Mock <IAsyncHttpClientHelper>();

            TestHelper.HttpClient_SetupGetRequest(HttpStatusCode.OK, record, httpClient);

            TrackViaClient client = new TrackViaClient(httpClient.Object, TestHelper.HostName_Fake, TestHelper.ApiKey_Fake);

            // Act
            Record recordResponse = client.getRecord(1, 1);

            // Assert
            recordResponse.ShouldNotBeNull();
            recordResponse.Data.ShouldNotBeNull();
            recordResponse.Data.Id.ShouldEqual(1L);
        }
コード例 #27
0
        public void TrackViaClient_GetRecordAsDomainClass_ShouldReturnRecordAsType()
        {
            // Assemble
            Record record = TestData.getUnitTestRecord1();

            Mock <IAsyncHttpClientHelper> httpClient = new Mock <IAsyncHttpClientHelper>();

            TestHelper.HttpClient_SetupGetRequest(HttpStatusCode.OK, record, httpClient);

            TrackViaClient client = new TrackViaClient(httpClient.Object, TestHelper.HostName_Fake, TestHelper.ApiKey_Fake);

            // Act
            DomainRecord <TestData.Contact> contactRecord = client.getRecord <TestData.Contact>(1, 1);

            // Assert
            contactRecord.ShouldNotBeNull();
            contactRecord.Data.ShouldNotBeNull();
            contactRecord.Data.Id.ShouldEqual(record.Data.Id);
        }
コード例 #28
0
        public void TrackViaClient_UpdateRecord_ShouldUpdateRecordAndReturn()
        {
            // Assemble
            RecordSet rs = TestData.getUnitTestRecordSet2();

            Mock <IAsyncHttpClientHelper> httpClient = new Mock <IAsyncHttpClientHelper>();

            TestHelper.HttpClient_SetupPutJsonRequest(HttpStatusCode.OK, rs, httpClient);

            TrackViaClient client = new TrackViaClient(httpClient.Object, TestHelper.HostName_Fake, TestHelper.ApiKey_Fake);

            // Act
            Record updatedRecord = client.updateRecord(1L, 1L, rs.Data[0]);

            // Assert
            updatedRecord.ShouldNotBeNull();
            updatedRecord.Data.ShouldNotBeNull();
            updatedRecord.Data.ShouldEqual(rs.Data[0]);
        }
        public void IntegrationTest_TrackViaClient_CreateRecords_SimpleCRMAccount()
        {
            TestHelper.EnsureProductionValuesBeforeRunningIntegrationTests();

            // Assemble
            RecordData      recordData = TestData.IntegrationTest_SimpleCrmContact_GetCreateRecordData();
            RecordDataBatch rsBatch    = new RecordDataBatch(new RecordData[] { recordData });

            TrackViaClient client = new TrackViaClient(IntegrationTestConfig.TRACKVIA_HOSTNAME, IntegrationTestConfig.TRACKVIA_USERNAME,
                                                       IntegrationTestConfig.TRACKVIA_PASSWORD, IntegrationTestConfig.TRACKVIA_API_KEY);

            // Act
            RecordSet rsResponse = client.createRecords(IntegrationTestConfig.TRACKVIA_VIEWID_DEMOSIMPLECRM_ACCOUNTSDEFAULTVIEW, rsBatch);

            // Assert
            rsResponse.ShouldNotBeNull();
            rsResponse.Data.ShouldNotBeNull();
            rsResponse.Count.ShouldEqual(1);
            rsResponse.Data[0].ShouldNotBeNull();
        }
        public void IntegrationTest_TrackViaClient_AddFile_ShouldReturnUpdatedRecord()
        {
            TestHelper.EnsureProductionValuesBeforeRunningIntegrationTests(IntegrationTestConfig.TRACKVIA_VIEWID_DEMOSIMPLECRM_ACCOUNTSDEFAULTVIEW <= 0);

            // Assemble
            string tempFilePath = IntegrationTestConfig.IMAGE_FILE_FULL_PATH_FOR_UPLOAD; // System.IO.Path.GetTempFileName();

            TrackViaClient client = new TrackViaClient(IntegrationTestConfig.TRACKVIA_HOSTNAME, IntegrationTestConfig.TRACKVIA_USERNAME,
                                                       IntegrationTestConfig.TRACKVIA_PASSWORD, IntegrationTestConfig.TRACKVIA_API_KEY);

            // Act
            Record updatedRecord = client.addFile(IntegrationTestConfig.TRACKVIA_VIEWID_INCLUDESFILEFIELD,
                                                  IntegrationTestConfig.TRACKVIA_VIEWID_INCLUDESFILEFIELD_RECORDID,
                                                  IntegrationTestConfig.TRACKVIA_VIEWID_INCLUDESFILEFIELD_FIELDNAME, tempFilePath);

            // Assert
            updatedRecord.ShouldNotBeNull();
            updatedRecord.Data.ShouldNotBeNull();
            updatedRecord.Data[IntegrationTestConfig.TRACKVIA_VIEWID_INCLUDESFILEFIELD_FIELDNAME].ShouldNotBeNull();
        }