Пример #1
0
        public void AddAgent()
        {
            using (CapriconContext context = new CapriconContext())
            {

                var newAgent = new Agent()
                {
                    FirstName = "Blaise",
                    LastName = "Nyamwamba",
                    OtherName = "",
                    Gender = Gender.Female,
                    MobilePhone = "0756 123 456",
                    Email = "*****@*****.**",
                    Town = "Nairobi",
                    District = "Nairobi",
                    DateOfBirth = DateTime.Now.AddYears(-40),
                };

                var agentRep = new AgentRepository(context);
                agentRep.Add(newAgent);

                try
                {
                    context.SaveChanges();
                }
                catch (DbEntityValidationException ex)
                {
                    //Retrieve validation errors
                    ex.EntityValidationErrors.ToList().ForEach
                    (
                        v =>
                        {
                            v.ValidationErrors.ToList().ForEach
                                (
                                    e =>
                                    {
                                        System.Diagnostics.Debug.WriteLine(e.ErrorMessage);
                                    }
                                );
                        }
                    );
                    Assert.Fail("Test failed");
                }

                //retrieve saved object
                var context1 = new CapriconContext();
                var repository = new AgentRepository(context1);
                var savedAgents = repository.GetAll().ToList();

                Assert.AreEqual(savedAgents.Count(), 1, "returns 20 records");
                var savedAgentsList = savedAgents;
                savedAgentsList.ForEach
                    (
                        s =>
                        {
                            Debug.WriteLine(s.AgentId + " - " + s.FirstName + " " + s.LastName);
                        }
                    );
            };
        }
 public ActionResult Delete(int agentId)
 {
     AgentRepository repository = new AgentRepository();
     var agentToDelete = repository.GetById(agentId);
     repository.Delete(agentToDelete);
     return RedirectToAction("Index");
 }
        public void AddAgentMessage()
        {
            using (var uow = new CapriconContext())
            {
                //retreive an existing agent
                var agentRepository = new AgentRepository(uow);
                var existingAgent = agentRepository.GetAll().FirstOrDefault();

                Assert.IsNotNull(existingAgent);

                //retreive an existing message
                var messageRepository = new MessageRepository(uow);
                var existingMessage = messageRepository.GetAll().LastOrDefault();

                Assert.IsNotNull(existingMessage);

                //create new agent messsage
                var newAgentMessage = new AgentMessage()
                {
                    Agent = existingAgent,
                    Message = existingMessage
                };

                //add the new agent message to the repository
                var agentMessageRepository = new AgentMessageRepository(uow);
                agentMessageRepository.Add(newAgentMessage);

                try
                {
                    uow.SaveChanges();
                }
                catch (DbEntityValidationException ex)
                {
                    //Retrieve validation errors
                    ex.EntityValidationErrors.ToList().ForEach
                    (
                        v =>
                        {
                            v.ValidationErrors.ToList().ForEach
                                (
                                    e =>
                                    {
                                        System.Diagnostics.Debug.WriteLine(e.ErrorMessage);
                                    }
                                );
                        }
                    );

                    Assert.Fail("Test failed");
                }

                //retrieve saved object
                var uow1 = new CapriconContext();
                var repository = new AgentMessageRepository(uow1);
                var savedAgentMessages = repository.GetAll().ToList();

                Assert.AreEqual(savedAgentMessages[0].Agent.FirstName, existingAgent.FirstName = "Blaise");
                Assert.AreEqual(savedAgentMessages[0].Message.MessageId, existingMessage.MessageId = 1);
            };
        }
        public void Get_ListAgents_ReturnsAgentList()
        {
            //ARRANGE
            Entity.Agent("Agent1", "111", "Status1");
            Entity.Agent("Agent2", "222", "Status2");
            Entity.Agent("Agent3", "333", "Status3");

            SaveChanges();

            var repository = new AgentRepository();

            //ACT
            var agents = repository.Get();

            //ASSERT
            Assert.That(agents, Has.Length.EqualTo(3));

            Assert.That(agents[0].Name, Is.EqualTo("Agent1"));
            Assert.That(agents[0].Extension, Is.EqualTo("111"));
            Assert.That(agents[0].Status, Is.EqualTo("Status1"));

            Assert.That(agents[1].Name, Is.EqualTo("Agent2"));
            Assert.That(agents[1].Extension, Is.EqualTo("222"));
            Assert.That(agents[1].Status, Is.EqualTo("Status2"));

            Assert.That(agents[2].Name, Is.EqualTo("Agent3"));
            Assert.That(agents[2].Extension, Is.EqualTo("333"));
            Assert.That(agents[2].Status, Is.EqualTo("Status3"));
        }
 public ActionResult Edit(int agentId)
 {
     AgentRepository repository = new AgentRepository();
     var agent = repository.GetById(agentId);
     var agentToEdit = new EditAgent { agentId = agent.id, agentName = agent.name };
     return View(agentToEdit);
 }
        public static bool ChooseAgent(Client client)
        {
            var agents = new AgentRepository().GetAll().ToArray();
            int agentId;

            Random randomize = new Random();
            int indexOfAgent = randomize.Next(0, agents.Count() - 1);

            agentId = agents[indexOfAgent].id;

            return AgentLogic.Apply(client, agentId);
        }
        public ActionResult AddAgent(AddAgent agent)
        {
            AgentRepository repository = new AgentRepository();

            Agents agentToAdd = new Agents
            {
                name = agent.agentName
            };

            repository.Save(agentToAdd);
            return RedirectToAction("Index");
        }
        static void CreateBase()
        {
            AgentRepository agentRepository = new AgentRepository();
            for (int i = 1; i <= 10; i++)
            {
                agentRepository.Add(new Agent(i, "Agent" + i.ToString()));
            }

            BuilderRepository builderRepository = new BuilderRepository();
            for (int i = 1; i <= 3; i++)
            {
               builderRepository.Add(new Builder(i, "Builder" + i.ToString()));
            }
        }
        public ActionResult Edit(int agentId, EditAgent agent)
        {
            AgentRepository repository = new AgentRepository();

            Agents agentToUpdate = new Agents
            {
                id = agent.agentId,
                Contracts = repository.GetById(agentId).Contracts,
                name = agent.agentName
            };

            repository.Update(agentToUpdate);
            return RedirectToAction("Index");
        }
        public void AgentRepositoryTest()
        {
            AgentRepository repository = new AgentRepository();
            Agent expectedAgent = new Agent(repository.GetAll().Count() + 1, "agensomeagent");

            repository.Add(expectedAgent);

            Agent realAgent = repository.GetItem(expectedAgent.id);

            Assert.AreEqual(expectedAgent, realAgent);

            repository.Delete(expectedAgent);

            realAgent = repository.GetItem(expectedAgent.id);

            Assert.AreEqual(null, realAgent);
        }
        public ActionResult MakeContract(MakeContractModel contract)
        {
            Clients client;

            //если клиент с таким именем уже существует, то берем его
            //если нет то создаем новый
            try
            {
                client = new ClientRepository()
                   .GetAll()
                   .Where(x => x.name.TrimEnd() == contract.clientName).First();
            }
            catch
            {
                //создаем клиента
                client = new Clients
                {
                    name = contract.clientName
                };
            }

            Projects project = new Projects
            {
                description = contract.projectDescription,
                name = contract.projectName,
                deadline = DateTime.Now.AddDays(20.0)
            };

            Agents agent = new AgentRepository().GetAll().Where(x => x.name.TrimEnd() == contract.agentName).First();

            Builders builder = new BuilderRepository().GetAll().Where(x => x.name.TrimEnd() == contract.builderName).First();

            Contracts contractToAdd = new Contracts()
            {
                agentId = agent.id,
                builderId = builder.id,
                clientId = client.id,
                Clients = client,
                projectId = project.id,
                Projects = project
            };

            new ContractRepository().Save(contractToAdd);

            return RedirectToAction("Index");
        }
        public void UpdateStatus_AgentNotFound_ReturnsFalse()
        {
            //ARRANGE
            Entity.Agent("Agent1", "111", "Status1");

            SaveChanges();

            var repository = new AgentRepository();

            //ACT
            var success = repository.UpdateStatus(new AgentStatusModel
            {
                AgentId = 999,
                Status = "StatusNew"
            });

            //ASSERT
            Assert.IsFalse(success);
        }
        public void AgentRepositoryTest()
        {
            AgentRepository repository = new AgentRepository();
            Agent expectedAgent = new Agent
            {
                name = "agensomeagent"
            };

            repository.Add(expectedAgent);

            Agent realAgent = repository.GetAll().Last();

            Assert.AreEqual(expectedAgent.name, realAgent.name);

            repository.Delete(realAgent);

            realAgent = repository.GetAll().Last();

            Assert.AreNotEqual(expectedAgent.name, realAgent.name);
        }
        //
        // GET: /Agent/
        public ActionResult Index()
        {
            AgentRepository repository = new AgentRepository();

            var agents = repository.GetAll();

            var agentsToShow = new List<EditAgent>();

            foreach (var agent in agents)
            {
                agentsToShow.Add
                    (
                        new EditAgent
                        {
                            agentId = agent.id,
                            agentName = agent.name
                        }
                    );
            }

            return View(agentsToShow);
        }
Пример #15
0
        public void UpdateAgent()
        {
            using (var uow = new CapriconContext())
            {
                var agentRep = new AgentRepository(uow);

                var existingAgents = agentRep.GetAll().ToList();

                var existingAgent = existingAgents.LastOrDefault();

                Assert.IsNotNull(existingAgent);

                existingAgent.FirstName = "Hilda";
                existingAgent.LastName = "Kunda";
                existingAgent.OtherName = "";
                existingAgent.Gender = Gender.Male;
                existingAgent.DateOfBirth = DateTime.Now.AddYears(-60);
                existingAgent.MobilePhone = "0777 700 700";
                existingAgent.Email = "*****@*****.**";
                existingAgent.Town = "Bugembe";
                existingAgent.District = "Jinja";

                //check for validation rules
                //existingAgent.FirstName = "";
                //existingAgent.LastName = "";
                //existingAgent.Gender = Gender.Not_Specified;
                //existingAgent.Email = "";
                //existingAgent.Town = "";
                //existingAgent.District = "";

                agentRep.Attach(existingAgent);
                uow.Entry(existingAgent).State = EntityState.Modified;

                try
                {
                    uow.SaveChanges();
                }
                catch (DbEntityValidationException ex)
                {
                    //Retrieve validation errors
                    ex.EntityValidationErrors.ToList().ForEach
                    (
                        v =>
                        {
                            v.ValidationErrors.ToList().ForEach
                                (
                                    e =>
                                    {
                                        System.Diagnostics.Debug.WriteLine(e.ErrorMessage);
                                    }
                                );
                        }
                    );
                    Assert.Fail("Test failed");
                }
            };

            //retrieve saved object
            var uow1 = new CapriconContext();
            var repository = new AgentRepository(uow1);
            var savedAgents = repository.GetAll().ToList();

            Assert.AreEqual(savedAgents[0].LastName, "Byanjeru");
        }
        public void UpdateStatus_AgentStatusUpdated_ReturnsTrue()
        {
            //ARRANGE
            var agent = Entity.Agent("Agent1", "111", "Status1");

            SaveChanges();

            var repository = new AgentRepository();

            //ACT
            var success = repository.UpdateStatus(new AgentStatusModel
            {
                AgentId = agent.Id,
                Status = "StatusNew"
            });

            //ASSERT
            Assert.IsTrue(success);

            RefreshContext();

            var updatedAgent = Context.Agents.Find(agent.Id);

            Assert.That(updatedAgent.Status, Is.EqualTo("StatusNew"));
        }
        public void UpdateAgentMessage()
        {
            using (var uow = new CapriconContext())
            {
                var agentMessageRepository = new AgentMessageRepository(uow);

                var existingAgentMessage = agentMessageRepository.Find(am => am.Id == 1).FirstOrDefault();

                Assert.IsNotNull(existingAgentMessage);

                //retreive an existing agent
                var agentRepository = new AgentRepository(uow);
                var existingAgent = agentRepository.Find(a => a.AgentId == 1).FirstOrDefault();

                Assert.IsNotNull(existingAgent);

                //retreive an existing message
                var messageRepository = new MessageRepository(uow);
                var existingMessage = messageRepository.Find(m => m.MessageId == 1).FirstOrDefault();

                Assert.IsNotNull(existingMessage);

                //edit an existing agent message
                existingAgentMessage.Agent = existingAgent;
                existingAgentMessage.Message = existingMessage;

                agentMessageRepository.Attach(existingAgentMessage);
                uow.Entry(existingAgentMessage).State = EntityState.Modified;

                try
                {
                    uow.SaveChanges();
                }
                catch (DbEntityValidationException ex)
                {
                    //Retrieve validation errors
                    ex.EntityValidationErrors.ToList().ForEach
                    (
                        v =>
                        {
                            v.ValidationErrors.ToList().ForEach
                                (
                                    e =>
                                    {
                                        System.Diagnostics.Debug.WriteLine(e.ErrorMessage);
                                    }
                                );
                        }
                    );
                    Assert.Fail("Test failed");
                }

                //retrieve saved object
                var uow1 = new CapriconContext();
                var repository = new AgentMessageRepository(uow1);
                var savedAgentMessages = repository.GetAll().ToList();

                Assert.AreEqual(savedAgentMessages[0].Agent, existingAgent);
                Assert.AreEqual(savedAgentMessages[0].Message, existingMessage);
            };
        }
Пример #18
0
 public void CaseSetup()
 {
     m_mockProvider = new Mock <IAgentDataProvider>();
     m_repo         = new AgentRepository(m_mockProvider.Object);
 }
Пример #19
0
        public async Task TestAgentManager()
        {
            // arrange
            var options = new DbContextOptionsBuilder <StorageContext>()
                          .UseInMemoryDatabase(databaseName: "AgentManager")
                          .Options;

            Guid credentialId = Guid.NewGuid();
            Guid agentId      = Guid.NewGuid();

            var context    = new StorageContext(options);
            var dummyAgent = new AgentModel
            {
                Id           = agentId,
                Name         = "TesterAgent",
                MachineName  = "TestingMachine",
                MacAddresses = "00:00:00:00:00:00",
                IPAddresses  = "192.168.0.1",
                CredentialId = credentialId
            };

            var dummyCredential = new Credential
            {
                Id   = credentialId,
                Name = "TesterCredential"
            };

            var dummyUserAgent = new AspNetUsers
            {
                Id       = Guid.NewGuid().ToString(),
                UserName = "******",
                Name     = "TesterAgent"
            };
            var dummyJob = new Job
            {
                Id        = Guid.NewGuid(),
                AgentId   = agentId,
                JobStatus = JobStatusType.New
            };

            Seed(context, dummyAgent, dummyCredential, dummyUserAgent, dummyJob);

            var agentLogger      = Mock.Of <ILogger <AgentModel> >();
            var usersLogger      = Mock.Of <ILogger <AspNetUsers> >();
            var scheduleLogger   = Mock.Of <ILogger <Schedule> >();
            var jobLogger        = Mock.Of <ILogger <Job> >();
            var credentialLogger = Mock.Of <ILogger <Credential> >();

            var httpContextAccessor = new Mock <IHttpContextAccessor>();

            httpContextAccessor.Setup(req => req.HttpContext.User.Identity.Name).Returns(It.IsAny <string>());

            var userRepo       = new AspNetUsersRepository(context, usersLogger, httpContextAccessor.Object);
            var agentRepo      = new AgentRepository(context, agentLogger, httpContextAccessor.Object);
            var scheduleRepo   = new ScheduleRepository(context, scheduleLogger, httpContextAccessor.Object);
            var jobRepo        = new JobRepository(context, jobLogger, httpContextAccessor.Object);
            var credentialRepo = new CredentialRepository(context, credentialLogger, httpContextAccessor.Object);
            var manager        = new AgentManager(agentRepo, scheduleRepo, jobRepo, userRepo, credentialRepo);

            //act
            AgentViewModel view       = new AgentViewModel();
            AgentModel     agentModel = agentRepo.GetOne(agentId);

            view = view.Map(agentModel);

            var  validAgentView     = manager.GetAgentDetails(view);//Fetches agent details
            bool agentWithDependant = manager.CheckReferentialIntegrity(agentId.ToString());

            dummyJob.JobStatus = JobStatusType.Completed;//Removes referential integrity violation
            bool agentWithoutDependant = manager.CheckReferentialIntegrity(agentId.ToString());

            // assert
            Assert.Equal(dummyCredential.Name, validAgentView.CredentialName);
            Assert.Equal(dummyUserAgent.UserName, validAgentView.UserName);
            Assert.True(agentWithDependant);
            Assert.False(agentWithoutDependant);
        }
Пример #20
0
 public AgentService(IUnitOfWork unitOfWork,
                     AgentRepository agentRepository)
     : base(unitOfWork, agentRepository)
 {
 }
Пример #21
0
        public void DeleteAgent()
        {
            using (var uow = new CapriconContext())
            {
                var agentRep = new AgentRepository(uow);
                var existingAgent = agentRep.Find(a => a.AgentId == 2).FirstOrDefault();

                Assert.IsNotNull(existingAgent);

                int agentId;
                if (existingAgent != null)
                {
                    agentId = existingAgent.AgentId;

                    agentRep.Delete(existingAgent);

                    try
                    {
                        uow.SaveChanges();
                    }
                    catch (DbEntityValidationException ex)
                    {
                        //Retrieve validation errors
                        ex.EntityValidationErrors.ToList().ForEach
                        (
                            v =>
                            {
                                v.ValidationErrors.ToList().ForEach
                                    (
                                        e =>
                                        {
                                            System.Diagnostics.Debug.WriteLine(e.ErrorMessage);
                                        }
                                    );
                            }
                        );
                        Assert.Fail("Test failed");
                    }

                    Assert.IsNull(agentRep.Find(a => a.AgentId == agentId).FirstOrDefault());
                }
                else //no agents were selected
                    Assert.Fail("No agent was selected");
            }
        }
Пример #22
0
        public JobManagerTests()
        {
            //arrange
            var options = new DbContextOptionsBuilder <StorageContext>()
                          .UseInMemoryDatabase(databaseName: "JobManager")
                          .Options;
            StorageContext context = new StorageContext(options);

            _newJobAgentId       = Guid.NewGuid();
            _completedJobAgentId = Guid.NewGuid();
            _newJobId            = Guid.NewGuid();

            //job with status of new
            Job newDummyJob = new Job
            {
                Id        = Guid.NewGuid(),
                JobStatus = JobStatusType.New,
                AgentId   = _newJobAgentId,
                CreatedOn = DateTime.UtcNow
            };

            //job with status of completed
            Job completedDummyJob = new Job
            {
                Id        = Guid.NewGuid(),
                JobStatus = JobStatusType.Completed,
                AgentId   = _completedJobAgentId,
                CreatedOn = DateTime.UtcNow
            };

            //job Parameter to be removed
            _jobParameter = new JobParameter
            {
                Id       = Guid.NewGuid(),
                DataType = "text",
                Value    = "Sample Value",
                JobId    = _newJobId
            };

            Job[] jobsToAdd = new[]
            {
                newDummyJob,
                completedDummyJob
            };

            //populate in memory database
            Seed(context, jobsToAdd, _jobParameter);

            //create loggers
            var jobLogger               = Mock.Of <ILogger <Job> >();
            var agentLogger             = Mock.Of <ILogger <Agent> >();
            var processLogger           = Mock.Of <ILogger <Automation> >();
            var jobParameterLogger      = Mock.Of <ILogger <JobParameter> >();
            var jobCheckpointLogger     = Mock.Of <ILogger <JobCheckpoint> >();
            var automationVersionLogger = Mock.Of <ILogger <AutomationVersion> >();

            //context accessor
            var httpContextAccessor = new Mock <IHttpContextAccessor>();

            httpContextAccessor.Setup(req => req.HttpContext.User.Identity.Name).Returns(It.IsAny <string>());

            //instance of necessary repositories
            var jobRepository         = new JobRepository(context, jobLogger, httpContextAccessor.Object);
            var agentRepo             = new AgentRepository(context, agentLogger, httpContextAccessor.Object);
            var automationRepo        = new AutomationRepository(context, processLogger, httpContextAccessor.Object);
            var jobParameterRepo      = new JobParameterRepository(context, jobParameterLogger, httpContextAccessor.Object);
            var jobCheckpointRepo     = new JobCheckpointRepository(context, jobCheckpointLogger, httpContextAccessor.Object);
            var automationVersionRepo = new AutomationVersionRepository(context, automationVersionLogger, httpContextAccessor.Object);

            //manager to be tested

/*            _manager = new JobManager(jobRepository, agentRepo, automationRepo, jobParameterRepo, jobCheckpointRepo, automationVersionRepo);
 */     }