Esempio n. 1
0
        /// <summary>
        /// Maps subscriber DTO object to SubscriberSearchResult object.
        /// </summary>
        /// <param name="subscriber">SubscriberDto object</param>
        /// <returns>Equivalent SubscriberSearchResult object.</returns>
        private SubscriberSearchResult MapProvisioningResponseToSubscriberSearchResult(SubscriberDto subscriber)
        {
            if (subscriber == null || string.IsNullOrEmpty(subscriber.ID) || string.IsNullOrEmpty(subscriber.Name))
            {
                throw new NullReferenceException("Subscriber Object, ID or Name was null");
            }
            var result = new SubscriberSearchResult();

            result.ID = subscriber.ID;
            result.Name = subscriber.Name;
            if (subscriber.Accounts != null
                && subscriber.Accounts.Any()
                && subscriber.Accounts.FirstOrDefault() != null
                // ReSharper disable once PossibleNullReferenceException
                && subscriber.Accounts.FirstOrDefault().Location != null)
            {
                result.LocationID = subscriber.Accounts[0].Location.ID;
                result.AddressLine1 = subscriber.Accounts[0].Location.AddressLine1;
                result.AddressLine2 = subscriber.Accounts[0].Location.AddressLine2;
                result.CityName = subscriber.Accounts[0].Location.CityName;
                result.StateName = subscriber.Accounts[0].Location.StateName;
                result.ZipCode = subscriber.Accounts[0].Location.ZipCode;
                result.Phone = subscriber.SubContactPhone;
                result.ExistsInProvisioning = true;
            }

            result.DataSource = SubscriberEnums.SubscriberDataSource.Provisioning;
            result.Environment = String.Empty;

            return result;
        }
        public void Search_Subscriber_Using_Viryanet_Call_ID()
        {
            using (ShimsContext.Create())
            {
                var myContext = new SIMPLTestContext();

                ShimCurrentUser.AsUserDto = new SIMPLTestContext().GetFakeUserDtoObject;

                var fakeCallID = "7777";

                var subscriberSearchViewModel = new SubscriberSearchViewModel
                {
                    CallID = fakeCallID,
                    State = "CT"
                };

                var expectedSearchResults = new List<SubscriberSearchResult>();
                var record = new SubscriberSearchResult
                {
                    ID = "1",
                    Name = "ViryanetTestName",
                    ExistsInBilling = true,
                    DataSource = SubscriberEnums.SubscriberDataSource.Billing,
                    Environment = "Test"
                };
                expectedSearchResults.Add(record);

                var expectedResult = new
                {
                    status = "partialsuccessbilling",
                    isModal = false,
                    searchResults = expectedSearchResults,
                    provisioned = false

                }.ToJSON();

                var fakeSubscriberList = new BillingSearchSubscriberResponse();
                var fakeSubscriber = new BillingSearchSubscriber();
                fakeSubscriber.USI = "1";
                fakeSubscriber.SubscriberName = "ViryanetTestName";
                fakeSubscriber.Environment = "Test";
                fakeSubscriberList.Add(fakeSubscriber);

                ShimErrorLoggingService.AllInstances.LogErrorNoContextException = delegate { };
                //Search Subscriber from provisioning
                ShimProvisioningServiceClient.AllInstances.SearchSubscribersSearchFieldsUser =
                    delegate
                    {
                        return new SubscriberCollection();
                    };

                //Search Subscriber from billing
                ShimBillingServiceClient.AllInstances.SearchSubscriberBillingSearchFieldsUser =
                    delegate
                    {
                        return fakeSubscriberList;
                    };

                var searchController = DependencyResolver.Current.GetService<SearchController>();

                var actionResult = searchController.SearchCompositeSubscribers(subscriberSearchViewModel) as JsonResult;

                Assert.IsNotNull(actionResult, "SearchSubscribers  returned null");

                var actualJsonResult = actionResult.Data.ToJSON().Replace(" ", "");

                Assert.AreEqual(expectedResult, actualJsonResult);
            }
        }
        public void Search_Subscriber_When_Billing_Throws_Exception()
        {
            using (ShimsContext.Create())
            {
                //Arrange
                var myContext = new SIMPLTestContext();

                var fakeUserDto = myContext.GetFakeUserDtoObject();
                ShimCurrentUser.AsUserDto = () => fakeUserDto;

                //search criteria
                var subscriberSearchViewModel = new SubscriberSearchViewModel
                {

                    SubscriberID = "370001704986"
                };

                var expectedSearchResults = new List<SubscriberSearchResult>();
                var record = new SubscriberSearchResult
                {
                    ID = "TESTSUBID",
                    ExistsInBilling = false,
                    ExistsInProvisioning = true,
                    Phone = "999-999-9999",
                    Name = "ProvisioningTestFirstNameLast",
                    LocationID = "9999999",
                    AddressLine1 = "123FakeSt.",
                    AddressLine2 = "Apt2",
                    CityName = "FakeCity",
                    StateName = "WA",
                    ZipCode = "99999",
                    DataSource = SubscriberEnums.SubscriberDataSource.Provisioning,
                    Environment = ""
                };
                expectedSearchResults.Add(record);

                var expectedResult = new
                {
                    status = "error",
                    isModal = false,
                    searchResults = new List<SubscriberSearchResult>(),
                    provisioned = false

                }.ToJSON();

                var fakeSubscriberList = new SubscriberCollection()
                {
                    myContext.GetFakeRosettianSubscriber("TESTSUBID", "ProvisioningTestFirstName", "Last", "9999999999", myContext.GetFakeRosettianCustomField(), myContext.GetFakeRosettianAccountObject(), myContext.GetFakeRosettianLocationObject())
                };

                ShimErrorLoggingService.AllInstances.LogErrorNoContextException = delegate { };
                //Search Subscriber from provisioning
                ShimProvisioningServiceClient.AllInstances.SearchSubscribersSearchFieldsUser =
                    delegate
                    {
                        return fakeSubscriberList;
                    };

                //Search Subscriber from billing
                ShimBillingServiceClient.AllInstances.SearchSubscriberBillingSearchFieldsUser =
                    delegate
                    {
                        throw new Exception();
                    };

                var searchController = DependencyResolver.Current.GetService<SearchController>();

                var actionResult = searchController.SearchCompositeSubscribers(subscriberSearchViewModel) as JsonResult;

                Assert.IsNotNull(actionResult, "SearchSubscribers  returned null");

                var actualJsonResult = actionResult.Data.ToJSON().Replace(" ", "");

                Assert.AreEqual(expectedResult, actualJsonResult);

            }
        }
        public void Search_Subscriber_Using_BillingOnlyFields()
        {
            using (ShimsContext.Create())
            {
                var myContext = new SIMPLTestContext();

                ShimCurrentUser.AsUserDto = new SIMPLTestContext().GetFakeUserDtoObject;

                var subscriberSearchViewModel = new SubscriberSearchViewModel
                {
                    AccountNumber = DataConversion(Convert.ToString(TestContext.DataRow["AccountNumber"])),
                    OrderNumber = DataConversion(Convert.ToString(TestContext.DataRow["OrderNumber"])),
                    DslamOltClli = DataConversion(Convert.ToString(TestContext.DataRow["DslamOltClli"])),
                    DslamOltPort = DataConversion(Convert.ToString(TestContext.DataRow["DslamOltPort"])),
                    State="CT"

                };

                var expectedSearchResults = new List<SubscriberSearchResult>();
                var record1 = new SubscriberSearchResult
                {
                    ID = "1",
                    Name = "Subscriber_1",
                    ExistsInBilling = true,
                    ExistsInProvisioning = false,
                    DataSource = SubscriberEnums.SubscriberDataSource.Billing,
                    Environment = "Test",
                    StateName = null
                };

                expectedSearchResults.Add(record1);

                var expectedResult = new
                {
                    status = "partialsuccessbilling",
                    isModal = false,
                    searchResults = expectedSearchResults,
                    provisioned = false

                }.ToJSON();

                var fakeSubscriberList = new BillingSearchSubscriberResponse();
                var fakeSubscriber = new BillingSearchSubscriber();
                fakeSubscriber.USI = record1.ID;
                fakeSubscriber.SubscriberName = record1.Name;
                fakeSubscriber.Environment = "Test";
                fakeSubscriberList.Add(fakeSubscriber);

                ShimErrorLoggingService.AllInstances.LogErrorNoContextException = delegate { };

                ShimBillingServiceClient.AllInstances.SearchSubscriberBillingSearchFieldsUser =
                    delegate
                    {
                        return fakeSubscriberList;
                    };

                bool isProvisioningMethodCalled = false;
                ShimProvisioningServiceClient.AllInstances.SearchSubscribersSearchFieldsUser =
                   delegate
                   {
                       isProvisioningMethodCalled = true;
                       return new SubscriberCollection();
                   };

                var searchController = DependencyResolver.Current.GetService<SearchController>();

                var actionResult = searchController.SearchCompositeSubscribers(subscriberSearchViewModel) as JsonResult;

                Assert.IsNotNull(actionResult, "SearchSubscribers  returned null");

                var actualJsonResult = actionResult.Data.ToJSON().Replace(" ", "");

                Assert.IsFalse(isProvisioningMethodCalled, "Provisioning service method should not be called.");
                Assert.AreEqual(expectedResult, actualJsonResult);
            }
        }