public void CloneTest()
        {
            DeckVersion deckVersion = new DeckVersion();

            PopulateObject(deckVersion, StartProp);

            DeckVersion clone = deckVersion.Clone() as DeckVersion;

            foreach (PropertyInfo p in typeof(DeckVersion).GetProperties())
            {
                if (p.CanWrite)
                {
                    TestContext.WriteLine("Checking prop:{0}.{1};{2}", p.Name, p.GetValue(deckVersion), p.GetValue(clone));
                    if (p.PropertyType == typeof(string))
                    {
                        //http://stackoverflow.com/questions/506648/how-do-strings-work-when-shallow-copying-something-in-c
                        continue;
                    }
                    if (p.PropertyType.GetInterface(nameof(ICollection)) != null)
                    {
                        CollectionAssert.AreNotEqual(p.GetValue(deckVersion) as ICollection, p.GetValue(clone) as ICollection, new ReferenceComparer());
                    }
                    else
                    {
                        Assert.IsFalse(Object.ReferenceEquals(p.GetValue(deckVersion), p.GetValue(clone)));
                    }
                }
            }
        }
        public void EqualsTest006_GuideRule_5()
        {
            DeckVersion deckVersion = new DeckVersion();

            PopulateObject(deckVersion, StartProp);

            Assert.IsFalse(deckVersion.Equals(null));
        }
        public void EqualsTest001_GuideRule_1()
        {
            DeckVersion deckVersion = new DeckVersion();

            PopulateObject(deckVersion, StartProp);

#pragma warning disable RECS0088 // Comparing equal expression for equality is usually useless
            Assert.IsTrue(deckVersion.Equals(deckVersion));
#pragma warning restore RECS0088 // Comparing equal expression for equality is usually useless
        }
        public void EqualsTest007_GuideRule_5()
        {
            DeckVersion deckVersion = new DeckVersion();

            PopulateObject(deckVersion, StartProp);

            object nullObject = null;

            Assert.IsFalse(nullObject.Equals(deckVersion));
        }
        public void CreateVersionTest002_CreateVersionAlreadyExists()
        {
            DateTime date  = new DateTime(2017, 1, 4);
            int      major = 1;
            int      minor = 1;

            Deck        deck = new Deck();
            DeckVersion dv   = deck.CreateVersion(major, minor, date);

            dv = deck.CreateVersion(major, minor, date);
        }
        public void EqualsTest003_GuideRule_2_sameValues()
        {
            DeckVersion deckVersion = new DeckVersion();

            PopulateObject(deckVersion, StartProp);

            DeckVersion deckVersion2 = new DeckVersion();

            PopulateObject(deckVersion2, StartProp);

            Assert.AreEqual(deckVersion.Equals(deckVersion2), deckVersion2.Equals(deckVersion));
        }
        public void EqualsTest010_operator_not_equals()
        {
            DeckVersion deckVersion = new DeckVersion();

            PopulateObject(deckVersion, StartProp);

            DeckVersion deckVersion2 = new DeckVersion();

            PopulateObject(deckVersion2, EditProp);

            Assert.IsTrue(deckVersion != deckVersion2);
        }
        public void EqualsTest008_operator_equals()
        {
            DeckVersion deckVersion = new DeckVersion();

            PopulateObject(deckVersion, StartProp);

            DeckVersion deckVersion2 = new DeckVersion();

            PopulateObject(deckVersion2, EditProp);

            Assert.IsFalse(deckVersion == deckVersion2);
        }
        public void EqualsTest005_GuideRule_4()
        {
            DeckVersion deckVersion = new DeckVersion();

            PopulateObject(deckVersion, StartProp);

            DeckVersion deckVersion2 = new DeckVersion();

            PopulateObject(deckVersion2, StartProp);

            Assert.IsTrue(deckVersion.Equals(deckVersion2));
            Assert.IsTrue(deckVersion.Equals(deckVersion2));
            Assert.IsTrue(deckVersion.Equals(deckVersion2));
            Assert.IsTrue(deckVersion.Equals(deckVersion2));
            Assert.IsTrue(deckVersion.Equals(deckVersion2));
            Assert.IsTrue(deckVersion.Equals(deckVersion2));
        }
        public void CreateVersionTest001_CreateVersion()
        {
            DateTime date  = new DateTime(2017, 1, 4);
            int      major = 1;
            int      minor = 2;

            Deck deck = new Deck();

            int expectedCount = deck.History.Count + 1;

            DeckVersion dv = deck.CreateVersion(major, minor, date);

            Assert.AreEqual(expectedCount, deck.History.Count);
            Assert.AreEqual(date, dv.CreatedDate);
            Assert.AreEqual(major, dv.Version.Major);
            Assert.AreEqual(minor, dv.Version.Minor);
        }
        public void EqualsTest011_comparesAllFields()
        {
            Guid guid = Guid.NewGuid(); //ensure have same guids
            Mock <ITrackerFactory> factory = new Mock <ITrackerFactory>();

            factory.Setup(f => f.GetDateTimeNow()).Returns(new DateTime(2017, 1, 3, 23, 44, 0));
            factory.Setup(f => f.GetNewGuid()).Returns(guid);

            foreach (PropertyInfo p in typeof(DeckVersion).GetProperties())
            {
                if (p.CanWrite)
                {
                    DeckVersion d1 = new DeckVersion(factory.Object);
                    DeckVersion d2 = new DeckVersion(factory.Object);

                    TestContext.WriteLine("Checking prop:" + p.Name);

                    p.SetValue(d2, EditProp[p.PropertyType]);

                    Assert.IsFalse(d1 == d2); //should return false
                }
            }
        }
Пример #12
0
        [Ignore] //"Run only on demand!"
        public void GenerateFile()
        {
            Tracker tracker = new Tracker();

            string[] names = new string[]
            {
                "Denita",
                "Kristopher",
                "Danita    ",
                "Marjory   ",
                "Elvera    ",
                "Myrle     ",
                "Sarai     ",
                "Rodney    ",
                "Ian       ",
                "Doreen    ",
                "Fatima    ",
                "Leeanne   ",
                "Shae      ",
                "Marianna  ",
                "Roselee   ",
                "Sid       ",
                "Nicolette ",
                "Brandee   ",
                "Sandee    ",
                "Bradly    "
            };

            string[] deckTags =
            {
                "Taahra             ",
                "Bhiila             ",
                "Atrassi            ",
                "Nairanirr          ",
                "Ahjiarra           ",
                "Nisaraji Hamnurabi ",
                "Addhjadhi Zahjspoor",
                "Adannabi Rahknaihn",
                "Faaji Baramanni   ",
                "Abaneena Khaohin  "
            };

            foreach (string name in names)
            {
                Deck d = Deck.CreateNewDeck(name);
                d.Type        = (DeckType)rand.Next(2);
                d.Class       = (DeckClass)rand.Next(16);
                d.CreatedDate = DateTime.Now.AddHours(-1 * rand.Next(5000));
                d.IsHidden    = rand.Next(4) < 1; //1/4 that is hidden
                d.DeckTag     = deckTags[rand.Next(deckTags.Length)];

                int versions = rand.Next(10);
                for (int i = 0; i < versions; i++)
                {
                    DeckVersion version   = d.CreateVersion(1, i + 1, d.CreatedDate.AddDays(i));
                    int         cardCount = 30 + rand.Next(40);
                    for (; cardCount > 0;)
                    {
                        Card c   = CardsDatabase.Default.Cards.ElementAt(rand.Next(CardsDatabase.Default.Cards.Count()));
                        int  qty = rand.Next(1, 3);
                        version.Cards.Add(new CardInstance(c)
                        {
                            Quantity = qty
                        });
                        cardCount -= qty;
                    }

                    int gamesCount = rand.Next(300);
                    for (; gamesCount > 0; gamesCount--)
                    {
                        Game g = new Game();
                        g.BonusRound      = rand.Next(2) % 2 == 1;
                        g.Date            = d.CreatedDate.AddMinutes(rand.Next(10000));
                        g.Deck            = d;
                        g.OpponentClass   = (DeckClass)rand.Next(16);
                        g.OpponentName    = "opp1";
                        g.OrderOfPlay     = (OrderOfPlay)rand.Next(2);
                        g.Outcome         = (GameOutcome)rand.Next(3);
                        g.OpponentDeckTag = deckTags[rand.Next(deckTags.Length)];
                        switch (d.Type)
                        {
                        case DeckType.Constructed:
                            g.Type = rand.Next(2) % 2 == 1 ? GameType.PlayCasual : GameType.PlayRanked;
                            break;

                        case DeckType.VersusArena:
                            g.Type = GameType.VersusArena;
                            break;

                        case DeckType.SoloArena:
                            g.Type = GameType.SoloArena;
                            break;

                        default:
                            break;
                        }
                        g.DeckVersionId = version.VersionId;
                        tracker.Games.Add(g);
                    }
                }
                tracker.Decks.Add(d);
            }

            int packsCount = rand.Next(100, 300);
            var sets       = CardsDatabase.Default.CardSets.Where(cs => cs.HasPacks);

            for (int i = 0; i < packsCount; i++)
            {
                Pack p = new Pack();
                p.DateOpened = DateTime.Now.AddDays(-1 * rand.Next(365));

                p.CardSet = sets.ElementAt(rand.Next(sets.Count()));

                var cards = CardsDatabase.Default.Cards.Where(c => c.Set == p.CardSet.Name);

                p.Cards.Add(new CardInstance(cards.ElementAt(rand.Next(cards.Count()))));
                p.Cards.Add(new CardInstance(cards.ElementAt(rand.Next(cards.Count()))));
                p.Cards.Add(new CardInstance(cards.ElementAt(rand.Next(cards.Count()))));
                p.Cards.Add(new CardInstance(cards.ElementAt(rand.Next(cards.Count()))));
                p.Cards.Add(new CardInstance(cards.ElementAt(rand.Next(cards.Count()))));
                p.Cards.Add(new CardInstance(cards.ElementAt(rand.Next(cards.Count()))));

                tracker.Packs.Add(p);
            }

            tracker.Version = Tracker.CurrentFileVersion;
            new FileManager().SaveDatabase(@"c:\dev\aa.xml", tracker);
        }
Пример #13
0
        [Ignore] //"Run only on demand!"
        public void GenerateFile()
        {
            Tracker tracker = new Tracker();

            string[] names = new string[]
            {
                "Denita",
                "Kristopher",
                "Danita    ",
                "Marjory   ",
                "Elvera    ",
                "Myrle     ",
                "Sarai     ",
                "Rodney    ",
                "Ian       ",
                "Doreen    ",
                "Fatima    ",
                "Leeanne   ",
                "Shae      ",
                "Marianna  ",
                "Roselee   ",
                "Sid       ",
                "Nicolette ",
                "Brandee   ",
                "Sandee    ",
                "Bradly    "
            };

            foreach (string name in names)
            {
                Deck d = Deck.CreateNewDeck(name);
                d.Type        = (DeckType)rand.Next(2);
                d.Class       = (DeckClass)rand.Next(16);
                d.CreatedDate = DateTime.Now.AddHours(-1 * rand.Next(5000));
                d.IsHidden    = rand.Next(2) % 2 == 1;

                int versions = rand.Next(10);
                for (int i = 0; i < versions; i++)
                {
                    DeckVersion version   = d.CreateVersion(1, i + 1, d.CreatedDate.AddDays(i));
                    int         cardCount = 30 + rand.Next(40);
                    for (; cardCount > 0; cardCount--)
                    {
                        Card c = CardsDatabase.Default.Cards.ElementAt(rand.Next(CardsDatabase.Default.Cards.Count()));
                        version.Cards.Add(new CardInstance(c));
                    }

                    int gamesCount = rand.Next(100);
                    for (; gamesCount > 0; gamesCount--)
                    {
                        Game g = new Game();
                        g.BonusRound    = rand.Next(2) % 2 == 1;
                        g.Date          = d.CreatedDate.AddMinutes(rand.Next(10000));
                        g.Deck          = d;
                        g.OpponentClass = (DeckClass)rand.Next(16);
                        g.OpponentName  = "opp1";
                        g.OrderOfPlay   = (OrderOfPlay)rand.Next(2);
                        g.Outcome       = (GameOutcome)rand.Next(3);
                        switch (d.Type)
                        {
                        case DeckType.Constructed:
                            g.Type = rand.Next(2) % 2 == 1 ? GameType.PlayCasual : GameType.PlayRanked;
                            break;

                        case DeckType.VersusArena:
                            g.Type = GameType.VersusArena;
                            break;

                        case DeckType.SoloArena:
                            g.Type = GameType.SoloArena;
                            break;

                        default:
                            break;
                        }
                        g.DeckVersionId = version.VersionId;
                        tracker.Games.Add(g);
                    }
                }
                tracker.Decks.Add(d);
            }

            tracker.Version = Tracker.CurrentFileVersion;
            new FileManager().SaveDatabase(@"c:\dev\aa.xml", tracker);
        }