예제 #1
0
        public void SetAlgorithmCommandTest()
        {
            var target = new SpiderViewModel();
            try
            {
                var originalAlgorithm = AlgorithmType.Search;
                var newAlgorithm = AlgorithmType.Study;

                Assert.Equal(originalAlgorithm, target.AlgorithmType);
                foreach (var variation in target.Algorithms)
                {
                    Assert.Equal(originalAlgorithm == variation.Value, variation.IsChecked);
                }

                target.SetAlgorithmCommand.Execute(new AlgorithmViewModel(newAlgorithm, false));

                Assert.Equal(newAlgorithm, target.AlgorithmType);
                foreach (var variation in target.Algorithms)
                {
                    Assert.Equal(newAlgorithm == variation.Value, variation.IsChecked);
                }
            }
            finally
            {
                target.Dispose();
            }
        }
예제 #2
0
 public void NewCommandTest()
 {
     var target = new SpiderViewModel();
     try
     {
         target.NewCommand.Execute(null);
         Assert.Equal(target.Variation.NumberOfFoundations, target.Tableau.DiscardPiles.Count);
         Assert.Equal(target.Variation.NumberOfPiles, target.Tableau.Piles.Count);
         foreach (var pile in target.Tableau.Piles)
         {
             Assert.True(pile.Count > 1);
             Assert.Equal(pile[0].CardType, CardType.Down);
             Assert.Equal(pile[pile.Count - 1].CardType, CardType.Up);
         }
         Assert.True(target.Tableau.StockPile.Count > 0);
     }
     finally
     {
         target.Dispose();
     }
 }
예제 #3
0
        public void SetVariationCommandTest()
        {
            var originalVariation = Variation.Spider2;
            var newVariation = Variation.Spiderette4;

            var target = new SpiderViewModel();
            try
            {
                Assert.Equal(originalVariation, target.Variation);
                foreach (var variation in target.Variations)
                {
                    Assert.Equal(originalVariation == variation.Value, variation.IsChecked);
                }
                Assert.Equal(originalVariation.NumberOfPiles, target.Game.NumberOfPiles);

                target.SetVariationCommand.Execute(new VariationViewModel(newVariation, false));

                Assert.Equal(newVariation, target.Variation);
                foreach (var variation in target.Variations)
                {
                    Assert.Equal(newVariation == variation.Value, variation.IsChecked);
                }
                Assert.Equal(newVariation.NumberOfPiles, target.Game.NumberOfPiles);
            }
            finally
            {
                target.Dispose();
            }
        }
예제 #4
0
 public void SpiderViewModelConstructorTest2()
 {
     var target = new SpiderViewModel(sampleData);
     try
     {
         Assert.Equal(target.Variation.NumberOfFoundations, target.Tableau.DiscardPiles.Count);
         Assert.Equal(CardType.Up, target.Tableau.DiscardPiles[1][0].CardType);
         Assert.Equal(CardType.EmptySpace, target.Tableau.DiscardPiles[2][0].CardType);
         Assert.Equal(target.Variation.NumberOfPiles, target.Tableau.Piles.Count);
         var pile = target.Tableau.Piles[0];
         Assert.Equal(11, pile.Count);
         Assert.Equal(pile[0].CardType, CardType.Down);
         Assert.Equal(1, target.Tableau.StockPile.Count);
     }
     finally
     {
         target.Dispose();
     }
 }
예제 #5
0
 public void SpiderViewModelConstructorTest1()
 {
     var target = new SpiderViewModel();
     try
     {
         Assert.Equal(target.Variation.NumberOfFoundations, target.Tableau.DiscardPiles.Count);
         Assert.Equal(target.Variation.NumberOfPiles, target.Tableau.Piles.Count);
         foreach (var pile in target.Tableau.Piles)
         {
             Assert.Equal(1, pile.Count);
             Assert.Equal(pile[0].CardType, CardType.EmptySpace);
         }
         Assert.Equal(0, target.Tableau.StockPile.Count);
     }
     finally
     {
         target.Dispose();
     }
 }