public async Task When_GetCustomerDetail_Return_Customer()
        {
            var mockHandler = DssHelpers.GetMockMessageHandler(DssHelpers.SuccessfulDssCustomerCreation(), statusToReturn: HttpStatusCode.OK);

            _restClient = new RestClient(mockHandler.Object);
            _dssService = new DssService(_restClient, _dssSettings, _logger);
            var result = await _dssService.GetCustomerDetail("993cfb94-12b7-41c4-b32d-7be9331174f1", new HttpRequestMessage());

            result.Should().NotBeNull();
        }
        public void Setup()
        {
            _logger = Substitute.For <ILogger <DssService> >();
            var mockHandler = DssHelpers.GetMockMessageHandler(DssHelpers.SuccessfulDssCustomerCreation(), statusToReturn: HttpStatusCode.Created);

            _restClient = new RestClient(mockHandler.Object);
            _dssService = new DssService(_restClient, Options.Create(new DssSettings()
            {
                ApiKey               = "9238dfjsjdsidfs83fds",
                CustomerApiUrl       = "https://this.is.anApi.org.uk",
                AccountsTouchpointId = "9000000001",
                CustomerApiVersion   = "V1"
            }), _logger);
        }
        public void When_DeleteCustomerRequestEmptyGuid_ThrowException()
        {
            var mockHandler = DssHelpers.GetMockMessageHandler(DssHelpers.SuccessfulDssCustomerCreation(), statusToReturn: HttpStatusCode.InternalServerError);

            _restClient = new RestClient(mockHandler.Object);
            _dssService = new DssService(_restClient, Options.Create(new DssSettings()
            {
                ApiKey               = "9238dfjsjdsidfs83fds",
                CustomerApiUrl       = "https://this.is.anApi.org.uk",
                AccountsTouchpointId = "9000000001",
                CustomerApiVersion   = "V1"
            }), _logger);

            _dssService.Invoking(x => x.DeleteCustomer(Guid.Empty)).Should()
            .Throw <UnableToUpdateCustomerDetailsException>();
        }
        public async Task When_DeleteCustomerSuccess_ReturnOk()
        {
            var mockHandler = DssHelpers.GetMockMessageHandler(DssHelpers.SuccessfulDssCustomerCreation(), statusToReturn: HttpStatusCode.OK);

            _restClient = new RestClient(mockHandler.Object);
            _dssService = new DssService(_restClient, Options.Create(new DssSettings()
            {
                ApiKey               = "9238dfjsjdsidfs83fds",
                CustomerApiUrl       = "https://this.is.anApi.org.uk",
                AccountsTouchpointId = "9000000001",
                CustomerApiVersion   = "V1",
                DigitalIdentitiesPatchByCustomerIdApiVersion = "https://this.is.anApi.org.uk",
                DigitalIdentitiesPatchByCustomerIdApiUrl     = "https://this.is.anApi.org.uk",
            }), _logger);
            await _dssService.DeleteCustomer(Guid.NewGuid());
        }
        public async Task IfApiCallIsUnSuccessful_ReturnNull()
        {
            var mockHandler = DssHelpers.GetMockMessageHandler(DssHelpers.SuccessfulDssCustomerCreation(), statusToReturn: HttpStatusCode.InternalServerError);

            _restClient = new RestClient(mockHandler.Object);
            _dssService = new DssService(_restClient, Options.Create(new DssSettings()
            {
                ApiKey               = "9238dfjsjdsidfs83fds",
                CustomerApiUrl       = "https://this.is.anApi.org.uk",
                AccountsTouchpointId = "9000000001",
                CustomerApiVersion   = "V1"
            }), _logger);

            var result = await _dssService.CreateCustomerData(new Customer());

            result.Should().BeNull();
        }
        public void Setup()
        {
            _logger = Substitute.For <ILogger <DssService> >();
            var mockHandler = DssHelpers.GetMockMessageHandler(DssHelpers.SuccessfulDssCustomerCreation(), statusToReturn: HttpStatusCode.Created);

            _restClient  = new RestClient(mockHandler.Object);
            _dssSettings = Options.Create(new DssSettings()
            {
                ApiKey                           = "0000dfjsjdsidfs83fds",
                CustomerApiUrl                   = "https://this.is.anApi.org.uk/api/Customers/",
                AccountsTouchpointId             = "9000000000",
                CustomerApiVersion               = "V2",
                CustomerAddressDetailsApiUrl     = "https://this.is.anApi.org.uk/api/Customers/{customerId}/Addresses",
                CustomerAddressDetailsApiVersion = "V2",
                CustomerContactDetailsApiUrl     = "https://this.is.anApi.org.uk/customers/{customerId}/ContactDetails/",
                CustomerContactDetailsApiVersion = "V2"
            });
        }