private WritingCompaniesController CreateWritingCompanyController(HttpRequestMessage httpRequest, IWritingCompanyRepository writingCompanyRepository)
        {
            WritingCompanyManager      writingCompanyManager    = new WritingCompanyManager(userManager.Object, cacheStoreManager.Object, mockLogManager.Object, writingCompanyRepository, transformationManager);
            DealAPIManager             dealAPIManager           = new DealAPIManager(userManager.Object, cacheStoreManager.Object, mockLogManager.Object, writingCompanyManager);
            WritingCompaniesController writingCompanyController = new WritingCompaniesController(userManager.Object, dealAPIManager)
            {
                Request       = httpRequest,
                Configuration = new HttpConfiguration()
            };

            return(writingCompanyController);
        }
        public void WritingCompanyController_Get_Root_IsNullorEmpty_ValidationAPIException()
        {
            #region Arrange

            SetupUserIdentity();

            SetupWritingCompanyRepository(out Mock <IWritingCompanyRepository> writingCompanyRepository, true);
            var httpRequest = new HttpRequestMessage(new HttpMethod(AppSettings.HTTPPOST), $"{AppSettings.BASEURL}{RouteHelper.WritingCompanyRoutePrefix}");
            WritingCompaniesController writingCompanyController = CreateWritingCompanyController(httpRequest, writingCompanyRepository.Object);

            #endregion


            #region Assert

            Assert.Throws <ArgumentNullException>(delegate { writingCompanyController.Get(); });

            #endregion
        }
        public void WritingCompanyController_Get_Throw_NotAllowedAPIException(Boolean isGRSFlag)
        {
            #region Arrange

            SetupUserIdentity();

            SetupWritingCompanyRepository(out Mock <IWritingCompanyRepository> writingCompanyRepository, isGRSFlag);
            var httpRequest = new HttpRequestMessage(new HttpMethod(AppSettings.HTTPPOST), $"{AppSettings.BASEURL}{RouteHelper.WritingCompanyRoutePrefix}");
            WritingCompaniesController writingCompanyController = CreateWritingCompanyController(httpRequest, writingCompanyRepository.Object);

            #endregion


            #region Assert

            Assert.Throws(typeof(NotAllowedAPIException), delegate { writingCompanyController.Get(false); });

            #endregion
        }
        public void WritingCompanyController_Get_Returns_OKResponseCode(Boolean isGRSFlag)
        {
            #region Arrange

            SetupUserIdentity();

            SetupWritingCompanyRepository(out Mock <IWritingCompanyRepository> writingCompanyRepository, isGRSFlag);
            var httpRequest = new HttpRequestMessage(new HttpMethod(AppSettings.HTTPPOST), $"{AppSettings.BASEURL}{RouteHelper.WritingCompanyRoutePrefix}");
            WritingCompaniesController writingCompanyController = CreateWritingCompanyController(httpRequest, writingCompanyRepository.Object);

            #endregion

            #region Act

            var response = writingCompanyController.Get(isGRSFlag);

            #endregion

            #region Expected Data

            var expectedWritingCompany = new WritingCompany()
            {
                Papernum                = 16,
                Companyname             = "Markel Global Reinsurance Company",
                Cpnum                   = 201178,
                Addr1                   = "535 Springfield Avenue",
                Addr2                   = "",
                Addr3                   = "",
                City                    = "Summit",
                State                   = "NJ",
                Postalcode              = "07901-2608",
                Country                 = "United States",
                Phone                   = null,
                Fax                     = null,
                Imagefilename           = "images\\Markel.jpg",
                CompanyShortname        = "ARUI",
                SlTrequired             = 0,
                IpTrequired             = 0,
                PaperToken              = null,
                Currency                = null,
                Territory               = null,
                Active                  = 1,
                HideUnusedClaimCategory = true,
                JeCode                  = "102",
            };

            #endregion

            #region Assert
            var contentResult = response as NegotiatedContentResult <ResponseCollection <WritingCompany> >;

            if (contentResult != null)
            {
                Assertions.AssertOkResponse(contentResult);

                var writingcompanyData = contentResult.Content.results;

                for (int i = 0; i <= writingcompanyData.Count - 1; i++)
                {
                    var actualWritingCompany = writingcompanyData[i].data;

                    Assertions.AssertData(expectedWritingCompany, actualWritingCompany);
                    Assert.IsEmpty(writingcompanyData[i].messages);
                }
            }

            #endregion
        }