public async Task SetMethods() { var accrepo = AccountRepo; var skey = await accrepo.RegisterUser("*****@*****.**", "123"); var userid = await accrepo.CheckSession(skey); var notificationRepo = new NotificationRepo(AccountContextProvider, Logger); var skillRepo = new SkillRepo(AccountContextProvider, Logger, notificationRepo); var repo = new PilotRepo(AccountContextProvider, Logger, null); // stage 1 var userData = new UserDataDto() { Pilots = new Pilot[] { new Pilot() { Name = "Pilot1", Skills = new List <Skill>(), EveId = 1, KeyInfoId = 10, }, new Pilot() { EveId = 2, Name = "Pilot2", Skills = new List <Skill>(), KeyInfoId = 11 } }.ToList(), Corporations = new List <Corporation>(), Jobs = new List <Job>(), }; await repo.Update(userid, userData); Assert.AreNotEqual(0, userData.Pilots[0].PilotId); await repo.SetFreeManufacturingJobsNofificationCount(userData.Pilots[0].PilotId, 10); await repo.SetFreeResearchJobsNofificationCount(userData.Pilots[1].PilotId, 20); var pilots = await repo.GetAll(userid); Assert.AreEqual(2, pilots.Count); var p1 = pilots.FirstOrDefault(x => x.PilotId == userData.Pilots[0].PilotId); var p2 = pilots.FirstOrDefault(x => x.PilotId == userData.Pilots[1].PilotId); Assert.IsNotNull(p1); Assert.IsNotNull(p2); Assert.AreEqual(10, p1.FreeManufacturingJobsNofificationCount); Assert.AreEqual(0, p1.FreeResearchJobsNofificationCount); Assert.AreEqual(20, p2.FreeResearchJobsNofificationCount); Assert.AreEqual(0, p2.FreeManufacturingJobsNofificationCount); }
public async Task TestWhetherPilotUpdated() { /// ARRAGNE var repo = new PilotRepo(_context); var pilot = CreatePilot("*****@*****.**"); var oldPilot = pilot; /// ACT await AddForTest(pilot); pilot.Name = "UPDATED NAME"; await repo.Update(pilot); var pilots = await _context.Pilots.ToListAsync(); var foundPilot = pilots.Where(p => p.Name == pilot.Name).FirstOrDefault(); /// ASSERT Assert.IsTrue(foundPilot.Name == pilot.Name && foundPilot.EmailId == oldPilot.EmailId); }
public async Task JobsNotification() { var accrepo = AccountRepo; var skey = await accrepo.RegisterUser("*****@*****.**", "123"); var userid = await accrepo.CheckSession(skey); var notificationRepo = new NotificationRepo(AccountContextProvider, Logger); var skillRepo = new SkillRepo(AccountContextProvider, Logger, notificationRepo); var pilotsRepo = new PilotRepo(AccountContextProvider, Logger, null); var jobsRepo = new JobRepo(AccountContextProvider, Logger, notificationRepo, pilotsRepo); // stage 1 var userData = new UserDataDto() { Pilots = new Pilot[] { new Pilot() { EveId = 1, KeyInfoId = 1, Name = "Pilot1", Skills = new List <Skill>(), MaxManufacturingJobs = 1, } }.ToList(), Corporations = new List <Corporation>(), Jobs = new List <Job>(), }; await pilotsRepo.Update(userid, userData); await jobsRepo.Update(userid, userData); var notifications = await notificationRepo.GetAll(userid); Assert.AreEqual(1, notifications.Count); var n = notifications.First(); Assert.AreEqual("Pilot1", n.Message); Assert.AreEqual("1 free manufacturing slots", n.Message2); await notificationRepo.Remove(n.NotificationId); // stage 2 // Same info provided and expected no further notifications await pilotsRepo.Update(userid, userData); await jobsRepo.Update(userid, userData); notifications = await notificationRepo.GetAll(userid); Assert.AreEqual(0, notifications.Count); var pilots = await pilotsRepo.GetAll(userid); Assert.AreEqual(1, pilots.Count); Assert.AreEqual(1, pilots.First().FreeManufacturingJobsNofificationCount); // stage 3 // First job started - still no notification - but notification flag shoud be reset var userData2 = new UserDataDto() { Pilots = new Pilot[] { new Pilot() { EveId = 1, KeyInfoId = 1, Name = "Pilot1", Skills = new List <Skill>(), MaxManufacturingJobs = 1, } }.ToList(), Corporations = new List <Corporation>(), Jobs = new Job[] { new Job() { IsManufacturing = true, Owner = "Pilot1" } }.ToList(), }; await pilotsRepo.Update(userid, userData2); await jobsRepo.Update(userid, userData2); notifications = await notificationRepo.GetAll(userid); Assert.AreEqual(0, notifications.Count()); pilots = await pilotsRepo.GetAll(userid); Assert.AreEqual(1, pilots.Count); Assert.AreEqual(0, pilots.First().FreeManufacturingJobsNofificationCount); // stage 4 // No running jobs - notification expected await pilotsRepo.Update(userid, userData); await jobsRepo.Update(userid, userData); notifications = await notificationRepo.GetAll(userid); Assert.AreEqual(1, notifications.Count()); n = notifications.First(); Assert.AreEqual("Pilot1", n.Message); Assert.AreEqual("1 free manufacturing slots", n.Message2); await notificationRepo.Remove(n.NotificationId); }
public async Task DeleteKey() { var accrepo = AccountRepo; var skey = await accrepo.RegisterUser("*****@*****.**", "123"); var userid = await accrepo.CheckSession(skey); var notificationRepo = new NotificationRepo(AccountContextProvider, Logger); var skillRepo = new SkillRepo(AccountContextProvider, Logger, notificationRepo); var pilotRepo = new PilotRepo(AccountContextProvider, Logger, null); var keyRepo = new KeyInfoRepo(Logger, AccountContextProvider); long keyid1 = await keyRepo.AddKey(userid, 1, ""); long keyid2 = await keyRepo.AddKey(userid, 2, ""); // stage 1 - skills firstly seen - no notification expected var userData = new UserDataDto() { Pilots = new Pilot[] { new Pilot() { EveId = 1, KeyInfoId = keyid1, Name = "Pilot1", Skills = new Skill[] { new Skill() { SkillName = "skill", Level = 1 }, new Skill() { SkillName = "skill", Level = 2 } }.ToList(), }, new Pilot() { EveId = 2, KeyInfoId = keyid2, Name = "Pilot2", Skills = new Skill[] { new Skill() { SkillName = "skill", Level = 1 }, new Skill() { SkillName = "skill", Level = 2 } }.ToList(), }, new Pilot() { EveId = 3, KeyInfoId = keyid2, Name = "Pilot3", Skills = new Skill[] { new Skill() { SkillName = "skilla", Level = 1 }, new Skill() { SkillName = "skilla", Level = 2 } }.ToList(), } }.ToList(), Corporations = new List <Corporation>(), Jobs = new List <Job>(), }; await pilotRepo.Update(userid, userData); await skillRepo.Update(userid, userData); var skills = await skillRepo.GetForPilot(userData.Pilots[0].PilotId); Assert.AreEqual(2, skills.Count); await pilotRepo.DeleteByKey(keyid2); skills = await skillRepo.GetForPilot(userData.Pilots[0].PilotId); Assert.AreEqual(2, skills.Count); using (var ctx = AccountContextProvider.Context) { var c = ctx.Skills.Count(p => p.PilotId == userData.Pilots[1].PilotId); Assert.AreEqual(0, c); c = ctx.Skills.Count(p => p.PilotId == userData.Pilots[2].PilotId); Assert.AreEqual(0, c); } }
public async Task SkillsNotificationLevelUp() { var accrepo = AccountRepo; var skey = await accrepo.RegisterUser("*****@*****.**", "123"); var userid = await accrepo.CheckSession(skey); var notificationRepo = new NotificationRepo(AccountContextProvider, Logger); var skillRepo = new SkillRepo(AccountContextProvider, Logger, notificationRepo); var pilotRepo = new PilotRepo(AccountContextProvider, Logger, null); // stage 1 - skills firstly seen - no notification expected var userData = new UserDataDto() { Pilots = new Pilot[] { new Pilot() { EveId = 1, KeyInfoId = 1, Name = "Pilot1", Skills = new Skill[] { new Skill() { SkillName = "skilla", Level = 1 }, new Skill() { SkillName = "skillb", Level = 2 }, new Skill() { SkillName = "skill ", Level = 3 } }.ToList(), } }.ToList(), Corporations = new List <Corporation>(), Jobs = new List <Job>(), }; await pilotRepo.Update(userid, userData); await skillRepo.Update(userid, userData); var skills = await skillRepo.GetForPilot(userData.Pilots[0].PilotId); Assert.AreEqual(3, skills.Count); var notifications = await notificationRepo.GetAll(userid); Assert.AreEqual(0, notifications.Count()); // stage 2 - level up var userData2 = new UserDataDto() { Pilots = new Pilot[] { new Pilot() { EveId = 1, KeyInfoId = 1, Name = "Pilot1", Skills = new Skill[] { new Skill() { SkillName = "skilla", Level = 1 }, new Skill() { SkillName = "skillb", Level = 2 }, new Skill() { SkillName = "skill ", Level = 4 } }.ToList(), } }.ToList(), Corporations = new List <Corporation>(), Jobs = new List <Job>(), }; await pilotRepo.Update(userid, userData2); await skillRepo.Update(userid, userData2); skills = await skillRepo.GetForPilot(userData.Pilots[0].PilotId); Assert.AreEqual(3, skills.Count); notifications = await notificationRepo.GetAll(userid); Assert.AreEqual(1, notifications.Count); var n = notifications.First(x => x.Message2.Contains("skill 4")); Assert.AreEqual("Pilot1", n.Message); Assert.AreEqual("skill 4 trained", n.Message2); await notificationRepo.Remove(n.NotificationId); }
public async Task PilotDeleteByKey() { var accrepo = AccountRepo; var skey = await accrepo.RegisterUser("*****@*****.**", "123"); var userid = await accrepo.CheckSession(skey); var notificationRepo = new NotificationRepo(AccountContextProvider, Logger); var skillRepo = new SkillRepo(AccountContextProvider, Logger, notificationRepo); var repo = new PilotRepo(AccountContextProvider, Logger, null); var keyRepo = new KeyInfoRepo(Logger, AccountContextProvider); long keyid1 = await keyRepo.AddKey(userid, 1, ""); long keyid2 = await keyRepo.AddKey(userid, 2, ""); // stage 1 var userData = new UserDataDto() { Pilots = new Pilot[] { new Pilot() { EveId = 1, KeyInfoId = keyid1, Name = "Pilot1", Skills = new List <Skill>() }, new Pilot() { EveId = 2, KeyInfoId = keyid2, Name = "Pilot2", Skills = new List <Skill>() }, new Pilot() { EveId = 3, KeyInfoId = keyid2, Name = "Pilot3", Skills = new List <Skill>() } }.ToList(), Corporations = new List <Corporation>(), Jobs = new List <Job>(), }; await repo.Update(userid, userData); var pilots = await repo.GetAll(userid); Assert.AreEqual(3, pilots.Count); await repo.DeleteByKey(keyid2); pilots = await repo.GetAll(userid); Assert.AreEqual(1, pilots.Count); Assert.AreEqual("Pilot1", pilots.First().Name); // delete using non existing key await repo.DeleteByKey(keyid1 + keyid2 + 1); pilots = await repo.GetAll(userid); Assert.AreEqual(1, pilots.Count); }
public async Task UpdatePilotsAndCorporations2() { var accrepo = AccountRepo; var skey = await accrepo.RegisterUser("*****@*****.**", "123"); var userid = await accrepo.CheckSession(skey); var repo = new CorporationRepo(AccountContextProvider, Logger, null); var notificationRepo = new NotificationRepo(AccountContextProvider, Logger); var skillRepo = new SkillRepo(AccountContextProvider, Logger, notificationRepo); var pilotrepo = new PilotRepo(AccountContextProvider, Logger, null); var corporepo = new CorporationRepo(AccountContextProvider, Logger, null); // stage 1 var userData = new UserDataDto() { Pilots = new Pilot[] { new Pilot() { EveId = 1, KeyInfoId = 1, Name = "Pilot1", Skills = new List <Skill>() } }.ToList(), Corporations = new Corporation[] { new Corporation() { EveId = 1, Name = "Corpo1", KeyInfoId = 2 } }.ToList(), Jobs = new List <Job>(), }; await pilotrepo.Update(userid, userData); await corporepo.Update(userid, userData); var pilots = await pilotrepo.GetAll(userid); Assert.AreEqual(1, pilots.Count); Assert.AreEqual("Pilot1", pilots.First().Name); var corporations = await corporepo.GetAll(userid); Assert.AreEqual(1, corporations.Count); Assert.AreEqual("Corpo1", corporations.First().Name); // stage 2 var userData2 = new UserDataDto() { Pilots = new Pilot[] { }.ToList(), Corporations = new Corporation[] { }.ToList(), Jobs = new List <Job>(), }; await pilotrepo.Update(userid, userData2); await corporepo.Update(userid, userData2); pilots = await pilotrepo.GetAll(userid); Assert.AreEqual(0, pilots.Count); corporations = await corporepo.GetAll(userid); Assert.AreEqual(0, corporations.Count); // No notifications expected var notifications = await notificationRepo.GetAll(userid); Assert.AreEqual(0, notifications.Count); }
public async Task UpdatePilots1() { var accrepo = AccountRepo; var skey = await accrepo.RegisterUser("*****@*****.**", "123"); var userid = await accrepo.CheckSession(skey); var notificationRepo = new NotificationRepo(AccountContextProvider, Logger); var skillRepo = new SkillRepo(AccountContextProvider, Logger, notificationRepo); var repo = new PilotRepo(AccountContextProvider, Logger, null); // stage 1 var userData = new UserDataDto() { Pilots = new Pilot[] { new Pilot() { EveId = 1, KeyInfoId = 2, Name = "Pilot1", Skills = new List <Skill>() } }.ToList(), Corporations = new List <Corporation>(), Jobs = new List <Job>(), }; await repo.Update(userid, userData); Assert.AreNotEqual(0, userData.Pilots[0].PilotId); var pilots = await repo.GetAll(userid); Assert.AreEqual(1, pilots.Count); Assert.AreEqual("Pilot1", pilots.First().Name); // stage 2 var userData2 = new UserDataDto() { Pilots = new Pilot[] { new Pilot() { EveId = 2, KeyInfoId = 3, Name = "Pilot2", Skills = new List <Skill>() }, new Pilot() { EveId = 3, KeyInfoId = 3, Name = "Pilot3", Skills = new List <Skill>() } }.ToList(), Corporations = new List <Corporation>(), Jobs = new List <Job>(), }; await repo.Update(userid, userData2); Assert.AreNotEqual(0, userData2.Pilots[0].PilotId); Assert.AreNotEqual(0, userData2.Pilots[1].PilotId); Assert.AreNotEqual(userData2.Pilots[0].PilotId, userData2.Pilots[1].PilotId); pilots = await repo.GetAll(userid); Assert.AreEqual(2, pilots.Count); Assert.AreEqual("Pilot2", pilots.First(x => x.Name == "Pilot2").Name); Assert.AreEqual("Pilot3", pilots.First(x => x.Name == "Pilot3").Name); // No notifications expected var notifications = await notificationRepo.GetAll(userid); Assert.AreEqual(0, notifications.Count); }
public async Task MultipleLevels3() { var accrepo = AccountRepo; var skey = await accrepo.RegisterUser("*****@*****.**", "123"); var userid = await accrepo.CheckSession(skey); var skillInQueueRepo = new SkillInQueueRepo(AccountContextProvider, Logger); var pilotRepo = new PilotRepo(AccountContextProvider, Logger, null); // stage 1 - skills firstly seen - no notification expected var userData = new UserDataDto() { Pilots = new Pilot[] { new Pilot() { EveId = 1, KeyInfoId = 1, Name = "Pilot1", Skills = new List <Skill>(), SkillsInQueue = new SkillInQueue[] { new SkillInQueue() { SkillName = "skilla", Level = 1 }, new SkillInQueue() { SkillName = "skilla", Level = 2 }, new SkillInQueue() { SkillName = "skilla", Level = 3 } }.ToList(), } }.ToList(), Corporations = new List <Corporation>(), Jobs = new List <Job>(), }; await pilotRepo.Update(userid, userData); await skillInQueueRepo.Update(userid, userData); var skills = await skillInQueueRepo.GetForPilot(userData.Pilots[0].PilotId); Assert.AreEqual(3, skills.Count); var userData2 = new UserDataDto() { Pilots = new Pilot[] { new Pilot() { EveId = 1, KeyInfoId = 1, Name = "Pilot1", Skills = new List <Skill>(), SkillsInQueue = new SkillInQueue[] { new SkillInQueue() { SkillName = "skilla", Level = 1 }, new SkillInQueue() { SkillName = "skilla", Level = 2 }, new SkillInQueue() { SkillName = "skilla", Level = 3 }, new SkillInQueue() { SkillName = "skilla", Level = 4 } }.ToList(), } }.ToList(), Corporations = new List <Corporation>(), Jobs = new List <Job>(), }; await pilotRepo.Update(userid, userData2); await skillInQueueRepo.Update(userid, userData2); skills = await skillInQueueRepo.GetForPilot(userData.Pilots[0].PilotId); Assert.AreEqual(4, skills.Count); }
public async Task SkillInQueueOperations() { var accrepo = AccountRepo; var skey = await accrepo.RegisterUser("*****@*****.**", "123"); var userid = await accrepo.CheckSession(skey); var skillInQueueRepo = new SkillInQueueRepo(AccountContextProvider, Logger); var pilotRepo = new PilotRepo(AccountContextProvider, Logger, null); // stage 1 - skills firstly seen - no notification expected var userData = new UserDataDto() { Pilots = new Pilot[] { new Pilot() { EveId = 1, KeyInfoId = 1, Name = "Pilot1", Skills = new List <Skill>(), SkillsInQueue = new SkillInQueue[] { new SkillInQueue() { SkillName = "skilla", Level = 1, Order = 1 }, new SkillInQueue() { SkillName = "skillb", Level = 2, Order = 2 }, new SkillInQueue() { SkillName = "skillc", Level = 3, Order = 3 } }.ToList(), } }.ToList(), Corporations = new List <Corporation>(), Jobs = new List <Job>(), }; await pilotRepo.Update(userid, userData); await skillInQueueRepo.Update(userid, userData); var skills = await skillInQueueRepo.GetForPilot(userData.Pilots[0].PilotId); Assert.AreEqual(3, skills.Count); foreach (var s in skills) { Assert.IsTrue(s.Order > 0); } var userData2 = new UserDataDto() { Pilots = new Pilot[] { new Pilot() { EveId = 1, KeyInfoId = 1, Name = "Pilot1", Skills = new List <Skill>(), SkillsInQueue = new SkillInQueue[] { new SkillInQueue() { SkillName = "skilld", Level = 1 }, }.ToList(), } }.ToList(), Corporations = new List <Corporation>(), Jobs = new List <Job>(), }; await pilotRepo.Update(userid, userData2); await skillInQueueRepo.Update(userid, userData2); skills = await skillInQueueRepo.GetForPilot(userData.Pilots[0].PilotId); Assert.AreEqual(1, skills.Count); Assert.AreEqual("skilld", skills[0].SkillName); }