public void updateTerritoryBaseInfoTest()
        {
            using (API.Controllers.TerritoriesController territoriesController = new API.Controllers.TerritoriesController())
            {
                territoriesController.Configuration = new System.Web.Http.HttpConfiguration();
                HttpRequestMessage request = new HttpRequestMessage();
                t.Id            = sampleTerritory.Id;
                t.LD            = "2";
                request.Content = new ObjectContent <Territory>(t, new JsonMediaTypeFormatter());
                request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                territoriesController.Request = request;

                var response = territoriesController.updateTerritoryBaseInfo(unitTestClientId, sampleTerritory.Id);

                Assert.IsNotNull(response);
                Assert.IsTrue(response.StatusCode == HttpStatusCode.OK);

                using (EverestPortal.API.DAL.EverestPortalContext context = new DAL.EverestPortalContext())
                {
                    var territory = context.Territories.FirstOrDefault(te => te.Id == sampleTerritory.Id);
                    Assert.IsNotNull(territory);
                    Assert.IsTrue(territory.LD == "2");
                }
            }
        }
        public async void copyTerritoryTest()
        {
            using (API.Controllers.TerritoriesController territoriesController = new API.Controllers.TerritoriesController())
            {
                var response = await territoriesController.copyTerritory(unitTestClientId, t.Id, "copyOfTerritory", "IMS Standard Structure");

                Assert.IsNotNull(response);
            }
        }
        public void SubmitTerritoryTest()
        {
            using (API.Controllers.TerritoriesController territoriesController = new API.Controllers.TerritoriesController())
            {
                territoriesController.Configuration = new System.Web.Http.HttpConfiguration();
                HttpRequestMessage request = new HttpRequestMessage();
                request.Content = new ObjectContent <Territory>(sampleTerritory, new JsonMediaTypeFormatter());
                request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                territoriesController.Request = request;

                //add history entry test for submission
            }
        }
        public void GetBrickOutletAllocationCountTest()
        {
            using (API.Controllers.TerritoriesController territoriesController = new API.Controllers.TerritoriesController())
            {
                territoriesController.Configuration = new System.Web.Http.HttpConfiguration();
                HttpRequestMessage request = new HttpRequestMessage();
                request.Content = new ObjectContent <Territory>(sampleTerritory, new JsonMediaTypeFormatter());
                request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                territoriesController.Request = request;

                var response = territoriesController.GetBrickOutletAllocationCount(unitTestClientId, sampleTerritory.Id, "brick");

                Assert.IsNotNull(response);
            }
        }
        public void GetClientTerritoriesTest()
        {
            using (API.Controllers.TerritoriesController territoriesController = new API.Controllers.TerritoriesController())
            {
                var reponse = territoriesController.GetClientTerritories(unitTestClientId);
                Assert.IsNotNull(reponse);
                List <Territory> territories = JsonConvert.DeserializeObject <List <Territory> >(reponse);

                Assert.IsTrue(territories.Count > 0);

                Assert.IsTrue(territories[0].Client_Id == -1);

                Assert.IsTrue(territories[0].Name == "sample");
            }
        }
        public void populateSRAInfoTest()
        {
            using (API.Controllers.TerritoriesController territoriesController = new API.Controllers.TerritoriesController())
            {
                territoriesController.Configuration = new System.Web.Http.HttpConfiguration();
                HttpRequestMessage request = new HttpRequestMessage();
                request.Content = new ObjectContent <Territory>(sampleTerritory, new JsonMediaTypeFormatter());
                request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                territoriesController.Request = request;

                var response = territoriesController.populateSRAInfo(unitTestClientId);

                Assert.IsNotNull(response);
                Assert.IsTrue(response.StatusCode == HttpStatusCode.OK);
            }
        }
        public void GetClientTerritoriesV2Test()
        {
            using (API.Controllers.TerritoriesController territoriesController = new API.Controllers.TerritoriesController())
            {
                HttpRequestMessage request = new HttpRequestMessage();
                request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                territoriesController.Request       = request;
                territoriesController.Configuration = new System.Web.Http.HttpConfiguration();

                var reponse = territoriesController.GetClientTerritoriesV2(unitTestClientId);
                Assert.IsNotNull(reponse);
                List <Territory> territories = JsonConvert.DeserializeObject <List <Territory> >(reponse.Content.ReadAsStringAsync().Result);

                Assert.IsNotNull(territories);
                Assert.IsNotNull(territories[0]);
                Assert.IsTrue(territories[0].Name.Contains("sample"));
            }
        }
        public void GetTerritoryByClientTest()
        {
            //HttpContextManager.SetCurrentContext(GetMockedHttpContext());

            //territoriesController.Request = new System.Net.Http.HttpRequestMessage();
            //territoriesController.Configuration = new System.Web.Http.HttpConfiguration();

            // Create the mock and set up the Link method, which is used to create the Location header.
            // The mock version returns a fixed string.
            //var mockUrlHelper = new Mock<UrlHelper>();
            //mockUrlHelper.Setup(x => x.Link(It.IsAny<string>(), It.IsAny<object>())).Returns(locationUrl);
            //territoriesController.Url = mockUrlHelper.Object;

            using (API.Controllers.TerritoriesController territoriesController = new API.Controllers.TerritoriesController())
            {
                var reponse = territoriesController.GetTerritoryByClientData(unitTestClientId);

                Assert.IsNotNull(reponse);

                Assert.IsTrue(reponse.Count > 0);

                Assert.IsTrue(reponse[0].Client_Id == -1);
            }
        }
        public void Setup()
        {
            TearDown();

            using (EverestPortal.API.DAL.EverestPortalContext context = new DAL.EverestPortalContext())
            {
                var client = context.Clients.FirstOrDefault(c => c.Id == -1);
                if (client == null)
                {
                    context.Database.ExecuteSqlCommand(@"set identity_insert clients on
INSERT INTO [dbo].[Clients]([ID],[Name],[IsMyClient],[DivisionOf],[IRPClientId],[IRPClientNo])
     VALUES(-1, 'UnitTestClient', 0, null, null, null)
set identity_insert clients off
insert into irp.ClientMap values (-1, -1, -1)
"

                                                       );
                }
            }


            using (API.Controllers.TerritoriesController territoriesController = new API.Controllers.TerritoriesController())
            {
                territoriesController.Configuration = new System.Web.Http.HttpConfiguration();
                HttpRequestMessage request = new HttpRequestMessage();
                t = new Territory()
                {
                    AD = "1", Client_Id = -1, DimensionID = 1, GuiId = new Guid().ToString(), IsBrickBased = false, IsReferenced = false, IsUsed = true, LastSaved = DateTime.Now, LD = "1", Name = "sample", SRA_Client = "1", SRA_Suffix = "1"
                };
                List <Level> levels   = new List <Level>();
                Level        national = new Level()
                {
                    LevelNumber = 1, Name = "NATIONAL"
                };
                Level state = new Level()
                {
                    LevelNumber = 2, Name = "STATE"
                };
                levels.Add(national); levels.Add(state);
                List <Group> groups = new List <Group>();
                Group        aus    = new Group()
                {
                    GroupNumber = "1", CustomGroupNumber = "1", Name = "AUSTRALIA"
                };
                Group nsw = new Group()
                {
                    GroupNumber = "11", CustomGroupNumber = "11", Name = "NSW"
                };
                List <Group> children = new List <Group>(); children.Add(nsw);
                aus.Children = children;
                groups.Add(aus);
                t.Levels                = levels;
                t.RootGroup             = aus;
                t.OutletBrickAllocation = new List <OutletBrickAllocation>();
                OutletBrickAllocation o = new OutletBrickAllocation()
                {
                    BrickOutletCode = "20001", Type = "Brick"
                };
                t.OutletBrickAllocation.Add(o);
                request.Content = new ObjectContent <Territory>(t, new JsonMediaTypeFormatter());
                request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                territoriesController.Request = request;

                //need to setup sample territory
                var task = Task.Run(async() => await territoriesController.postTerritory(unitTestClientId));
                task.Wait();
                var asyncFunctionResult = task.Result;
            }

            using (EverestPortal.API.DAL.EverestPortalContext context = new DAL.EverestPortalContext())
            {
                sampleTerritory = context.Territories.FirstOrDefault(t => t.Client_Id == -1 && t.Name == "sample");
            }
            t.Id = sampleTerritory.Id;
        }