Exemplo n.º 1
0
        /// <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();
        }
Exemplo n.º 2
0
        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));
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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));
        }
Exemplo n.º 7
0
        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);
        }
Exemplo n.º 8
0
        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);
        }
Exemplo n.º 9
0
 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();
 }
Exemplo n.º 10
0
        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));
        }
Exemplo n.º 11
0
        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();
        }
Exemplo n.º 12
0
        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);
            }
        }
Exemplo n.º 13
0
        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);
        }
Exemplo n.º 14
0
        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());
        }
Exemplo n.º 15
0
 public void SetFixtureAlgorithm(FixtureDto aFixture, string algorithmsPath)
 {
     ValidateFixture(aFixture);
     FixtureAlgorithm = BuildFixtureAlgorithm(aFixture, algorithmsPath);
 }
Exemplo n.º 16
0
 private void SetFixtureAlgorithm(FixtureGenerator algorithm)
 {
     fixtureAlgorithm = algorithm;
 }
Exemplo n.º 17
0
        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);
        }