/// <summary>The main.</summary> private static void Main() { Console.WriteLine("Football Tester\n"); var random = new Random(DateTime.Now.Millisecond * DateTime.Now.Day); var teams = XmlDataHandler.LoadTeams("BaseTeams.xml"); var league = new League("Premiership", teams); var matchDays = FixtureGenerator.GenerateFixtures(teams, true, random); foreach (var matchDay in matchDays) { // League table before matchday Console.WriteLine(league); Console.ReadKey(); Console.Clear(); // Matchday fixtures Console.WriteLine(matchDay); PlayMatchDay(matchDay); Console.ReadKey(); Console.Clear(); //// Matchday results Console.WriteLine(matchDay); Console.ReadKey(); Console.Clear(); } // final league table Console.WriteLine(league); Console.ReadKey(); Console.Clear(); }
private MemberTypeData GenerateInfo(Type memberType, string memberName) { MemberTypeData memberInfo = new MemberTypeData(memberType, memberName); if (memberType.IsClass) { if (memberType != typeof(string)) { if (FixtureGenerator.DoesItImplementInterface(memberType, typeof(IList))) { var itemType = memberType.GetGenericArguments()[0]; memberInfo.ItemType = GenerateInfo(itemType, "Item"); } else if (FixtureGenerator.DoesItImplementInterface(memberType, typeof(IDictionary))) { var genericTypes = memberType.GetGenericArguments(); memberInfo.KeyType = GenerateInfo(genericTypes[0], "Key"); memberInfo.ItemType = GenerateInfo(genericTypes[1], "Item"); } else { memberInfo.Children = BuildTree(memberType); } } } return(memberInfo); }
public void ShouldThrowAnExceptionIfTeamsAreMissingOrNull(List <int> teamIds) { //given var fixtureGenerator = new FixtureGenerator(); //then Assert.Throws <ArgumentNullException>(() => fixtureGenerator.Generate(teamIds)); }
public void ConstructSMSMessagesTest() { var mockContext = new Mock <SMSDb>(); // create an empty history var smsHistoryList = new List <SMSHistory>(); var mockSMSHistorySet = EFHelper.GetQueryableMockDbSet(smsHistoryList); mockContext.Setup(c => c.SMSHistoryRecords).Returns(mockSMSHistorySet.Object); // Setup TemplateFields var mockTemplateFieldSet = EFHelper.GetQueryableMockDbSet(FixtureGenerator.CreateTemplateFields()); mockContext.Setup(c => c.TemplateFields).Returns(mockTemplateFieldSet.Object); mockContext.Setup(m => m.Set <TemplateField>()).Returns(mockTemplateFieldSet.Object); // Set the template var template = new Template(); template.Id = 100; template.Description = "MyTemplate"; template.Name = "MyTemplate"; template.Text = Resources.mockTemplateString; var templateList = new List <Template>() { template }; var mockTemplateSet = EFHelper.GetQueryableMockDbSet(templateList); // I have to use object[] mockTemplateSet.Setup(m => m.Find(It.IsAny <object[]>())).Returns <object[]>(ids => templateList.FirstOrDefault(d => d.Id == (int)ids[0])); //I need to set the Set<Template> Template // because the line dbSet = DbContext.Set<T>(); on the Generic repository fails mockContext.Setup(m => m.Set <Template>()).Returns(mockTemplateSet.Object); mockContext.Setup(c => c.Templates).Returns(mockTemplateSet.Object); var mockICurrentUserService = new Mock <ICurrentUserService>(); mockICurrentUserService.Setup(p => p.GetCurrentUser()).Returns("TestUser"); // Mocking up dbFactory var mockdbFactory = new Mock <DbFactory <SMSDb> >(); mockdbFactory.Setup(m => m.DBContext).Returns(mockContext.Object); IUnitOfWork <SMSDb> UoW = new UnitOfWork <SMSDb>(mockdbFactory.Object, mockICurrentUserService.Object); var target = new SMSServices(UoW); var result = target.ConstructSMSMessages(FixtureGenerator.CreateSMSRecepients(), templateList.First().Id); Assert.IsNotNull(result); }
private MemberTypeData GetCommonMemberData(MemberTypeData member1, MemberTypeData member2) { MemberTypeData common = member1.Clone(); if (member1.MemberType == member2.MemberType) { return(common); } else { if (member1.MemberType.IsClass && member2.MemberType.IsClass) { if (member1.MemberType != typeof(string) && member2.MemberType != typeof(string)) { if (FixtureGenerator.DoesItImplementInterface(member1.MemberType, typeof(IList)) && FixtureGenerator.DoesItImplementInterface(member2.MemberType, typeof(IList))) { common.ItemType = GetCommonMemberData(member1.ItemType, member2.ItemType); if (common.ItemType == null) { // list value types do not have common elements return(null); } } else if (FixtureGenerator.DoesItImplementInterface(member1.MemberType, typeof(IDictionary)) && FixtureGenerator.DoesItImplementInterface(member2.MemberType, typeof(IDictionary))) { if (member1.KeyType.MemberType != member1.KeyType.MemberType) { return(null); // keys MUST be of the same type, commmon members are not enough } common.ItemType = GetCommonMemberData(member1.ItemType, member2.ItemType); if (common.ItemType == null) { // dictionary value types do not have common elements return(null); } } else { common.Children = GetCommonTree(member1.Children, member2.Children); } return(common); } return(null); } } return(null); }
public void ShouldThrowExceptionIfTeamIdsAreNotUnique() { //given var fixtureGenerator = new FixtureGenerator(); var teamIds = new List <int> { 1, 1, }; //then Assert.Throws <Exception>(() => fixtureGenerator.Generate(teamIds)); }
public void GenerateFixtures(Guid eventId, List <int> userIds) { var generator = new FixtureGenerator(); var teamIds = generator.Generate(userIds); var documentString = _xmlGenerator.GenerateFixtures(teamIds, eventId); var parameters = new { XmlString = documentString }; _helper.ExecuteNonQuery("up_AddFixtures", parameters); }
public int Generate(string inputFilePath, string inputFileContents, string defaultNamespace, IntPtr[] outputFileContents, out uint bytesWritten, IVsGeneratorProgress progress) { var generator = new FixtureGenerator(); var code = generator.GenerateCode(inputFilePath, inputFileContents, defaultNamespace); var bytes = Encoding.UTF8.GetBytes(code); var length = bytes.Length; bytesWritten = (uint)length; outputFileContents[0] = Marshal.AllocCoTaskMem(length); Marshal.Copy(bytes, 0, outputFileContents[0], length); return(VSConstants.S_OK); }
public void TestInitialize() { played = new Sport("Soccer", true); teams = new List <Team>(); for (int i = 1; i <= 6; i++) { Team newTeam = new Team(i, "Team " + i, "Photo/" + i, played); teams.Add(newTeam); } initialDate = new DateTime(2019, 1, 1); finalDate = new DateTime(2019, 4, 4); roundLength = 2; daysBetweenRounds = 5; oneMatchFixture = new OneMatchFixture(initialDate, roundLength, daysBetweenRounds); homeAwayFixture = new HomeAwayFixture(initialDate, roundLength, daysBetweenRounds); factory = new EncounterFactory(); }
public void EachTeamShouldPlayEachOtherOnce() { //given var teamIdsOne = new List <int> { 1, 2 }; var teamIdstwo = new List <int> { 1, 2, 3 }; var teamIdsThree = new List <int> { 1, 2, 3, 4 }; var fixtureGenerator = new FixtureGenerator(); //then var values = fixtureGenerator.Generate(teamIdsOne); var values2 = fixtureGenerator.Generate(teamIdstwo); var value3 = fixtureGenerator.Generate(teamIdsThree); //then Assert.That(values.Count, Is.EqualTo(1)); Assert.That(values[0].TeamOne, Is.EqualTo(1)); Assert.That(values[0].TeamTwo, Is.EqualTo(2)); Assert.That(values2.Count, Is.EqualTo(3)); Assert.That(values2[0].TeamOne, Is.EqualTo(1)); Assert.That(values2[0].TeamTwo, Is.EqualTo(2)); Assert.That(values2[1].TeamOne, Is.EqualTo(1)); Assert.That(values2[1].TeamTwo, Is.EqualTo(3)); Assert.That(values2[2].TeamOne, Is.EqualTo(2)); Assert.That(values2[2].TeamTwo, Is.EqualTo(3)); Assert.That(value3.Count, Is.EqualTo(6)); Assert.That(value3[0].TeamOne, Is.EqualTo(1)); Assert.That(value3[0].TeamTwo, Is.EqualTo(2)); Assert.That(value3[1].TeamOne, Is.EqualTo(1)); Assert.That(value3[1].TeamTwo, Is.EqualTo(3)); Assert.That(value3[2].TeamOne, Is.EqualTo(1)); Assert.That(value3[2].TeamTwo, Is.EqualTo(4)); Assert.That(value3[3].TeamOne, Is.EqualTo(2)); Assert.That(value3[3].TeamTwo, Is.EqualTo(3)); Assert.That(value3[4].TeamOne, Is.EqualTo(2)); Assert.That(value3[4].TeamTwo, Is.EqualTo(4)); Assert.That(value3[5].TeamOne, Is.EqualTo(3)); Assert.That(value3[5].TeamTwo, Is.EqualTo(4)); }
static void Main(string[] args) { List <Fixture> population = new List <Fixture>(); while (population.Count < POPULATION) { Fixture f = FixtureGenerator.GenerateFixture(); population.Add(f); } Console.WriteLine("\n TOTAL FIXTURES: " + population.Count); for (int j = 0; j < ITERATIONS; j++) { // Validate Validate(population); // Select population = RankingSelection.Select(population); PrintParcialInformation(population); if (population.Count < 200) { break; } // Mix for (int i = 0; i < population.Count - 1; i += 2) { population[i].MixWithOther(population[i + 1]); } for (int i = 0; i < population.Count; i++) { population[i].ResetAptitudeValue(); } } PrintFinalInformation(population); Console.ReadKey(); }
private FixtureGenerator BuildFixtureAlgorithm(FixtureDto dto, string algorithmsPath) { int roundLength = dto.roundLength == 0 ? 1 : dto.roundLength; int daysBetweenRounds = dto.daysBetweenRounds == 0 ? 7 : dto.daysBetweenRounds; try { Type algortihmType = GetAlgorithmType(algorithmsPath, dto.fixtureName); object fromDll = Activator.CreateInstance(algortihmType, new object[] { dto.initialDate, roundLength, daysBetweenRounds }); FixtureGenerator algorithm = fromDll as FixtureGenerator; return(algorithm); } catch (IOException e) { throw new ServiceException(e.Message, ErrorType.ENTITY_NOT_FOUND); } catch (MissingMemberException e) { throw new ServiceException(e.Message, ErrorType.INVALID_DATA); } }
public void SendBulkSMSInMemoryTest() { var mockICurrentUserService = new Mock <ICurrentUserService>(); mockICurrentUserService.Setup(p => p.GetCurrentUser()).Returns("TestUser"); //http://techbrij.com/unit-testing-asp-net-mvc-controller-service var faker = new Bogus.Faker(); DbConnection memoryConnection = Effort.DbConnectionFactory.CreateTransient(); var memDB = new SMSDb(memoryConnection); // Mocking up dbFactory var mockdbFactory = new Mock <DbFactory <SMSDb> >(); mockdbFactory.Setup(m => m.DBContext).Returns(memDB); IUnitOfWork <SMSDb> UoW = new UnitOfWork <SMSDb>(mockdbFactory.Object, mockICurrentUserService.Object); // Set the template var template = new Template(); template.Id = 100; template.Description = "MyTemplate"; template.Name = "MyTemplate"; template.Text = Resources.mockTemplateString; memDB.Templates.Add(template); // Create SMS provider registration var provider = new Provider() { Name = "aurorafakeprovider", UserName = "******", PassWord = "******", Url = faker.Internet.Url() }; memDB.Providers.Add(provider); var target = new SMSServices(UoW); var smsMessages = target.ConstructSMSMessages(FixtureGenerator.CreateSMSRecepients(100), template.Id); var result = target.SendBulkSMS(smsMessages, provider.Name); Assert.IsNotNull(result); }
public void UpdateTestWhenTemplateHasReference() { var faker = new Bogus.Faker(); int mockTemplateId = faker.Random.Number(); var mockContext = new Mock <SMSDb>(); var smsHistoryList = new List <SMSHistory> { FixtureGenerator.CreateSMSHistory(mockTemplateId) }; var mockSMSHistorySet = EFHelper.GetQueryableMockDbSet(smsHistoryList); mockContext.Setup(c => c.SMSHistoryRecords).Returns(mockSMSHistorySet.Object); // Set the template var templateList = new List <Template>(); var mockTemplateSet = EFHelper.GetQueryableMockDbSet(templateList); //I need to set the Set<Template> Template // because the line dbSet = DbContext.Set<T>(); on the Generic repository fails mockContext.Setup(m => m.Set <Template>()).Returns(mockTemplateSet.Object); mockContext.Setup(c => c.Templates).Returns(mockTemplateSet.Object); var mockICurrentUserService = new Mock <ICurrentUserService>(); mockICurrentUserService.Setup(p => p.GetCurrentUser()).Returns("TestUser"); // Mocking up dbFactory var mockdbFactory = new Mock <DbFactory <SMSDb> >(); mockdbFactory.Setup(m => m.DBContext).Returns(mockContext.Object); IUnitOfWork <SMSDb> UoW = new UnitOfWork <SMSDb>(mockdbFactory.Object, mockICurrentUserService.Object); var target = new TemplateServices(mockdbFactory.Object); target.Update(new EFModel.Template() { Id = mockTemplateId }); Assert.IsTrue(mockContext.Object.Templates.Any()); }
public void SetFixtureAlgorithm(FixtureDto aFixture, string algorithmsPath) { ValidateFixture(aFixture); FixtureAlgorithm = BuildFixtureAlgorithm(aFixture, algorithmsPath); }
private void SetFixtureAlgorithm(FixtureGenerator algorithm) { fixtureAlgorithm = algorithm; }
public void SendBulkSMSTest() { // TODO: use in memory DB because the data validations are not applied and the test is not creditable var mockICurrentUserService = new Mock <ICurrentUserService>(); mockICurrentUserService.Setup(p => p.GetCurrentUser()).Returns("TestUser"); var smsDB = Mock.Of <SMSDb>(); var mockContext = Mock.Get(smsDB); // Mocking up dbFactory var mockdbFactory = new Mock <DbFactory <SMSDb> >(); mockdbFactory.Setup(m => m.DBContext).Returns(mockContext.Object); IUnitOfWork <SMSDb> UoW = new UnitOfWork <SMSDb>(mockdbFactory.Object, mockICurrentUserService.Object); // create an empty history var smsHistoryList = new List <SMSHistory>(); var mockSMSHistorySet = EFHelper.GetQueryableMockDbSet(smsHistoryList); mockContext.Setup(c => c.SMSHistoryRecords).Returns(mockSMSHistorySet.Object); mockContext.Setup(m => m.Set <SMSHistory>()).Returns(mockSMSHistorySet.Object); // Setup TemplateFields var mockTemplateFieldSet = EFHelper.GetQueryableMockDbSet(FixtureGenerator.CreateTemplateFields()); mockContext.Setup(c => c.TemplateFields).Returns(mockTemplateFieldSet.Object); mockContext.Setup(m => m.Set <TemplateField>()).Returns(mockTemplateFieldSet.Object); // Set the template var template = new Template(); template.Id = 100; template.Description = "MyTemplate"; template.Name = "MyTemplate"; template.Text = Resources.mockTemplateString; var templateList = new List <Template>() { template }; var mockTemplateSet = EFHelper.GetQueryableMockDbSet(templateList); // I have to use object[] mockTemplateSet.Setup(m => m.Find(It.IsAny <object[]>())).Returns <object[]>(ids => templateList.FirstOrDefault(d => d.Id == (int)ids[0])); //I need to set the Set<Template> Template // because the line dbSet = DbContext.Set<T>(); on the Generic repository fails mockContext.Setup(m => m.Set <Template>()).Returns(mockTemplateSet.Object); mockContext.Setup(c => c.Templates).Returns(mockTemplateSet.Object); // Create SMS provider registration var provider = new Provider() { Name = "aurorafakeprovider", UserName = "******", PassWord = "******" }; var providerList = new List <Provider>() { provider }; var mockproviderSet = EFHelper.GetQueryableMockDbSet(providerList); mockproviderSet.Setup(m => m.Find(It.IsAny <object[]>())).Returns <object[]>(ids => providerList.FirstOrDefault(d => d.Name == (string)ids[0])); mockContext.Setup(m => m.Set <Provider>()).Returns(mockproviderSet.Object); mockContext.Setup(c => c.Providers).Returns(mockproviderSet.Object); var target = new SMSServices(UoW); var smsMessages = target.ConstructSMSMessages(FixtureGenerator.CreateSMSRecepients(100), templateList.First().Id); var result = target.SendBulkSMS(smsMessages, provider.Name); Assert.IsNotNull(result); }