Exemple #1
0
        public void CanPerfomTaskForClientsTranslateAllCallsInData()
        {
            var clientRepository     = new LocalRepository <Client>();
            var externalDataProvider = new Mock <IExternalDataProvider>();
            var contactRepository    = new Mock <IRepository <Contact> >();
            var contactAutoRating    = new Mock <IContactAutoRating>();

            clientRepository.Add(ModelHelper.TestClient1AllDataNoReferences);

            var startDate = new DateTime(2014, 01, 01);
            var endDate   = new DateTime(2014, 02, 01);

            externalDataProvider.Setup(x => x.GetPhoneData(1, startDate, endDate)).Returns("{\"calls\":[{\"id\": 1,\"account_id\":1}, {\"id\": 2,\"account_id\":1}],\"next_page\":null,\"previous_page\":null,\"total_pages\":1,\"page\":1}");

            var task = new UpdatePhonecalls(
                clientRepository,
                contactRepository.Object,
                externalDataProvider.Object,
                contactAutoRating.Object);

            var taskMessage = "{\"ClientId\":1,\"StartDate\":\"2014-01-01T00:00:00\",\"EndDate\":\"2014-02-01T00:00:00\"}";
            var message     = new InsideModel.Models.Task()
            {
                Message = taskMessage
            };

            task.PerformTask(message);

            externalDataProvider.Verify(x => x.MapPhoneDataToContact(It.Is <CallTrackingMetricsWebhookData>(ctm => ctm.id == 1)), Times.Once);
            externalDataProvider.Verify(x => x.MapPhoneDataToContact(It.Is <CallTrackingMetricsWebhookData>(ctm => ctm.id == 2)), Times.Once);

            contactRepository.Verify(cr => cr.Add(It.IsAny <Contact>()), Times.Exactly(2));
        }
Exemple #2
0
        public void NoCtmIdThrowsException()
        {
            var clientRepository     = new LocalRepository <Client>();
            var externalDataProvider = new Mock <IExternalDataProvider>();
            var contactRepository    = new Mock <IRepository <Contact> >();
            var contactAutoRating    = new Mock <IContactAutoRating>();

            clientRepository.Add(new Client()
            {
                Id = 1
            });

            var startDate = new DateTime(2014, 01, 01);
            var endDate   = new DateTime(2014, 02, 01);

            externalDataProvider.Setup(x => x.GetPhoneData(1, startDate, endDate)).Returns("{\"calls\":[{\"id\": 1}, {\"id\": 2}],\"next_page\":null,\"previous_page\":null,\"total_pages\":1,\"page\":1}");

            var task = new UpdatePhonecalls(
                clientRepository,
                contactRepository.Object,
                externalDataProvider.Object,
                contactAutoRating.Object);

            var taskMessage = "{\"ClientId\":1,\"StartDate\":\"2014-01-01T00:00:00\",\"EndDate\":\"2014-02-01T00:00:00\"}";
            var message     = new InsideModel.Models.Task()
            {
                Message = taskMessage
            };

            task.PerformTask(message);

            externalDataProvider.Verify(x => x.MapPhoneDataToContact(It.IsAny <CallTrackingMetricsWebhookData>()), Times.Never);
            contactRepository.Verify(cr => cr.Add(It.IsAny <Contact>()), Times.Never);
        }
Exemple #3
0
        public void NoPhoneCallsForDatePeriodDoesNotTranslateToAnyContact()
        {
            var clientRepository     = new LocalRepository <Client>();
            var externalDataProvider = new Mock <IExternalDataProvider>();
            var contactRepository    = new Mock <IRepository <Contact> >();
            var contactAutoRating    = new Mock <IContactAutoRating>();

            clientRepository.Add(ModelHelper.TestClient1AllDataNoReferences);

            var startDate = new DateTime(2014, 01, 01);
            var endDate   = new DateTime(2014, 02, 01);

            externalDataProvider.Setup(x => x.GetPhoneData(1, startDate, endDate)).Returns("");

            var task = new UpdatePhonecalls(
                clientRepository,
                contactRepository.Object,
                externalDataProvider.Object,
                contactAutoRating.Object);

            var taskMessage = "{\"ClientId\":1,\"StartDate\":\"2014-01-01T00:00:00\",\"EndDate\":\"2014-02-01T00:00:00\"}";
            var message     = new InsideModel.Models.Task()
            {
                Message = taskMessage
            };

            task.PerformTask(message);

            externalDataProvider.Verify(x => x.MapPhoneDataToContact(It.IsAny <CallTrackingMetricsWebhookData>()), Times.Never);

            contactRepository.Verify(cr => cr.Add(It.IsAny <Contact>()), Times.Never);
        }
Exemple #4
0
        public void CanConstruct()
        {
            var clientRepository     = new LocalRepository <Client>();
            var externalDataProvider = new Mock <IExternalDataProvider>();
            var contactRepository    = new LocalRepository <Contact>();
            var contactAutoRating    = new Mock <IContactAutoRating>();

            var task = new UpdatePhonecalls(
                clientRepository,
                contactRepository,
                externalDataProvider.Object,
                contactAutoRating.Object);
        }
Exemple #5
0
        public void ContactInDbDoesNotAddContactModifiesState()
        {
            var clientRepository     = new LocalRepository <Client>();
            var externalDataProvider = new Mock <IExternalDataProvider>();
            var contactRepository    = new LocalRepository <Contact>();
            var contactAutoRating    = new Mock <IContactAutoRating>();

            clientRepository.Add(ModelHelper.TestClient1AllDataNoReferences);

            var contactProperty = new ContactProperty("CTMId", "1");
            var contact         = new Contact()
            {
                Id       = 1,
                ClientId = 1
            };

            contact.Property.Add(contactProperty);
            contactRepository.Add(contact);

            var startDate = new DateTime(2014, 01, 01);
            var endDate   = new DateTime(2014, 02, 01);

            externalDataProvider.Setup(x => x.GetPhoneData(1, startDate, endDate)).Returns("{\"calls\":[{\"id\": 1,\"account_id\":1}, {\"id\": 2,\"account_id\":1}],\"next_page\":null,\"previous_page\":null,\"total_pages\":1,\"page\":1}");

            var task = new UpdatePhonecalls(
                clientRepository,
                contactRepository,
                externalDataProvider.Object,
                contactAutoRating.Object);

            var taskMessage = "{\"ClientId\":1,\"StartDate\":\"2014-01-01T00:00:00\",\"EndDate\":\"2014-02-01T00:00:00\"}";
            var message     = new InsideModel.Models.Task()
            {
                Message = taskMessage
            };

            task.PerformTask(message);

            externalDataProvider.Verify(x => x.MapPhoneDataToContact(It.IsAny <CallTrackingMetricsWebhookData>()), Times.Once);
            externalDataProvider.Verify(x => x.MapPhoneDataToContact(It.IsAny <CallTrackingMetricsWebhookData>(), It.IsAny <Contact>()), Times.Once);

            Assert.AreEqual(2, contactRepository.All().Count());
        }
Exemple #6
0
        public void CanPerfomTask()
        {
            var clientRepository     = new LocalRepository <Client>();
            var externalDataProvider = new Mock <IExternalDataProvider>();
            var contactRepository    = new LocalRepository <Contact>();
            var contactAutoRating    = new Mock <IContactAutoRating>();

            var task = new UpdatePhonecalls(
                clientRepository,
                contactRepository,
                externalDataProvider.Object,
                contactAutoRating.Object);

            var result = task.CanPerformTask("UpdatePhonecalls");

            Assert.IsTrue(result);

            var result2 = task.CanPerformTask("Not Update Phonecall Task");

            Assert.IsFalse(result2);
        }