public async void GetDevelopersWithTooHighSkillScore() { //Arrange var mockAPIClient = new Mock <IAPIClient>(); var developerService = new DeveloperService(null, mockAPIClient.Object); mockAPIClient.Setup(m => m.Execute(It.IsAny <GetAllDevelopersRequest>())).ReturnsAsync(new List <Developer> { new Developer { FirstName = "Colin", LastName = "Abbot", Age = 34, Skills = _GetLowBackendSkills() }, new Developer { FirstName = "Sarah", LastName = "Winchester", Age = 40, Skills = _GetLowFrontendSkills() } }); //Act var developers = await developerService.GetDevelopersBySkillAsync(12); //Assert developers.Should().BeEmpty(); }
public async void GetDevelopersSkillTypesJustWithHighScore() { //Arrange var mockAPIClient = new Mock <IAPIClient>(); var developerService = new DeveloperService(null, mockAPIClient.Object); var mixedSkills = _GetHighBackendSkills(); mixedSkills.AddRange(_GetLowFrontendSkills()); mockAPIClient.Setup(m => m.Execute(It.IsAny <GetAllDevelopersRequest>())).ReturnsAsync(new List <Developer> { new Developer { FirstName = "Colin", LastName = "Abbot", Age = 34, Skills = mixedSkills } }); //Act var developers = await developerService.GetDevelopersBySkillAsync(10); //Assert developers.Should().HaveCount(1); developers.SelectMany(dev => dev.Skills.Select(skill => skill.Type)).Should().OnlyContain(x => x.Equals("backend")); }
public void ThrowExceptionForNegativeSkills() { //Arrange var developerService = new DeveloperService(null, null); //Act Func <Task> act = async() => await developerService.GetDevelopersBySkillAsync(-1); //Assert act.ShouldThrow <ArgumentException>(); }