public void RemoveSkillFromResource_TheResourceShouldRemainOneSkillLess() { var resource = CreateSampleResource(); var skill = CreateSampleSkill(); var skill2 = CreateSampleSkill(); var resourceService = new ResourceService(RavenSession); resourceService.AddSkillForAResource(resource, skill, 2); resourceService.AddSkillForAResource(resource, skill2, 3); RavenSession.SaveChanges(); var fetchedResource = RavenSession.Load <Resource>(resource.Id); Assert.AreEqual(2, fetchedResource.Skills.Count); resourceService.RemoveSkillFromResource(resource, skill); RavenSession.SaveChanges(); var fetchedResource2 = RavenSession.Load <Resource>(resource.Id); Assert.AreEqual(1, fetchedResource2.Skills.Count); }
public void AddSkillsForAResources_AddTheSameSkillTwice_AnExceptionShouldBeThrown() { var resource = CreateSampleResource(); var skill = CreateSampleSkill(); var resourceService = new ResourceService(RavenSession); resourceService.AddSkillForAResource(resource, skill, 2); resourceService.AddSkillForAResource(resource, skill, 3); }
public void AddResource_AddSkills_FetchAndVerify() { //Setup var resource = Builder <Resource> .CreateNew().With(a => a.Id, "ResourceId1").Build(); var sampleSkills = Builder <Skill> .CreateListOfSize(5).Build(); var resourceService = new ResourceService(RavenSession); foreach (var resoureSkill in sampleSkills) { resourceService.AddSkillForAResource(resource, resoureSkill, 4); } //Act RavenSession.Store(resource); RavenSession.SaveChanges(); //Verify var fetchedResource = RavenSession.Query <Resource>().FirstOrDefault(a => a.Id == resource.Id); Assert.IsNotNull(fetchedResource); Assert.AreEqual(5, resource.Skills.Count()); Assert.AreEqual(4, resource.Skills.First().Strength); }
public void AddSkillsForAResource_MakeSureDuplicateAreHandled() { //Setup var resource = CreateSampleResource(); var skill = CreateSampleSkill(); //Act var resourceService = new ResourceService(RavenSession); resourceService.AddSkillForAResource(resource, skill, 4); var resource2 = CreateSampleResource(); resourceService.AddSkillForAResource(resource2, skill, 3); RavenSession.SaveChanges(); var skills = RavenSession.Query <Skill>().Where(a => a.Name == skill.Name); //Assert Assert.AreEqual(1, skills.Count()); }
public void AddResourceForSkill_MakeSureResourceIsSavedOnlyOnce() { var resource = CreateSampleResource(); RavenSession.Store(resource); RavenSession.SaveChanges(); var resources = RavenSession.Query<Resource>().ToList(); Assert.AreEqual(1 , resources.Count); var resourceService = new ResourceService(RavenSession); resourceService.AddSkillForAResource(resource , CreateSampleSkill() , 5); RavenSession.SaveChanges(); var resourcesAgain = RavenSession.Query<Resource>().ToList(); Assert.AreEqual(1, resourcesAgain.Count); Assert.AreEqual(1 , resourcesAgain.First().Skills.Count()); }
public void AddResourceForSkill_MakeSureResourceIsSavedOnlyOnce() { var resource = CreateSampleResource(); RavenSession.Store(resource); RavenSession.SaveChanges(); var resources = RavenSession.Query <Resource>().ToList(); Assert.AreEqual(1, resources.Count); var resourceService = new ResourceService(RavenSession); resourceService.AddSkillForAResource(resource, CreateSampleSkill(), 5); RavenSession.SaveChanges(); var resourcesAgain = RavenSession.Query <Resource>().ToList(); Assert.AreEqual(1, resourcesAgain.Count); Assert.AreEqual(1, resourcesAgain.First().Skills.Count()); }
public void AddResource_AddSkills_FetchAndVerify() { //Setup var resource = Builder<Resource>.CreateNew().With(a=>a.Id ,"ResourceId1").Build(); var sampleSkills = Builder<Skill>.CreateListOfSize(5).Build(); var resourceService = new ResourceService(RavenSession); foreach (var resoureSkill in sampleSkills) { resourceService.AddSkillForAResource(resource , resoureSkill , 4); } //Act RavenSession.Store(resource); RavenSession.SaveChanges(); //Verify var fetchedResource = RavenSession.Query<Resource>().FirstOrDefault(a => a.Id == resource.Id); Assert.IsNotNull(fetchedResource); Assert.AreEqual(5, resource.Skills.Count()); Assert.AreEqual(4, resource.Skills.First().Strength); }
public void RemoveSkillFromResource_TheResourceShouldRemainOneSkillLess() { var resource = CreateSampleResource(); var skill = CreateSampleSkill(); var skill2 = CreateSampleSkill(); var resourceService = new ResourceService(RavenSession); resourceService.AddSkillForAResource(resource, skill, 2); resourceService.AddSkillForAResource(resource, skill2, 3); RavenSession.SaveChanges(); var fetchedResource = RavenSession.Load<Resource>(resource.Id); Assert.AreEqual(2 , fetchedResource.Skills.Count); resourceService.RemoveSkillFromResource(resource, skill); RavenSession.SaveChanges(); var fetchedResource2 = RavenSession.Load<Resource>(resource.Id); Assert.AreEqual(1, fetchedResource2.Skills.Count); }
public void AddSkillsForAResource_MakeSureDuplicateAreHandled() { //Setup var resource = CreateSampleResource(); var skill = CreateSampleSkill(); //Act var resourceService = new ResourceService(RavenSession); resourceService.AddSkillForAResource(resource, skill, 4); var resource2 = CreateSampleResource(); resourceService.AddSkillForAResource(resource2, skill, 3); RavenSession.SaveChanges(); var skills = RavenSession.Query<Skill>().Where(a=>a.Name == skill.Name); //Assert Assert.AreEqual(1, skills.Count()); }