예제 #1
0
        public void DeleteDeckTest004_ActiveDeckOther()
        {
            Deck deckToDelete = Deck.CreateNewDeck();
            ObservableCollection <Deck> decks = new ObservableCollection <Deck>();
            List <Reward> rewards             = new List <Reward>();
            ObservableCollection <Game> games = new ObservableCollection <Game>();

            Deck activeDeck = Deck.CreateNewDeck();

            Mock <ITracker> tracker = new Mock <ITracker>();

            tracker.Setup(t => t.Decks).Returns(decks);
            tracker.Setup(t => t.Rewards).Returns(rewards);
            tracker.Setup(t => t.ActiveDeck).Returns(activeDeck); //some other deck
            tracker.Setup(t => t.Games).Returns(games);

            Mock <ITrackerFactory> trackerFactory = new Mock <ITrackerFactory>();

            trackerFactory.Setup(tf => tf.GetTracker()).Returns(tracker.Object);

            DeckService deckService = new DeckService(trackerFactory.Object);

            deckService.DeleteDeck(deckToDelete);

            Assert.AreEqual(activeDeck, tracker.Object.ActiveDeck);
        }
예제 #2
0
        public void DeleteDeckTest003_RemoveActiveDeckRef()
        {
            Deck deckToDelete = Deck.CreateNewDeck();
            ObservableCollection <Deck> decks = new ObservableCollection <Deck>();
            List <Reward> rewards             = new List <Reward>();
            ObservableCollection <Game> games = new ObservableCollection <Game>();

            Mock <ITracker> tracker = new Mock <ITracker>();

            tracker.Setup(t => t.Decks).Returns(decks);
            tracker.Setup(t => t.Rewards).Returns(rewards);
            tracker.Setup(t => t.ActiveDeck).Returns(deckToDelete);
            tracker.Setup(t => t.Games).Returns(games);


            Mock <ITrackerFactory> trackerFactory = new Mock <ITrackerFactory>();

            trackerFactory.Setup(tf => tf.GetTracker()).Returns(tracker.Object);

            DeckService deckService = new DeckService(trackerFactory.Object);

            deckService.DeleteDeck(deckToDelete);

            tracker.VerifySet(t => t.ActiveDeck = null);

            // Assert.AreEqual(null, tracker.Object.ActiveDeck);
        }
예제 #3
0
        public void DeleteDeckTest001_RemoveDeck()
        {
            Deck deckToDelete = Deck.CreateNewDeck();
            ObservableCollection <Deck> decks = new ObservableCollection <Deck>()
            {
                Deck.CreateNewDeck(),
                                        deckToDelete,
                                        Deck.CreateNewDeck()
            };

            ObservableCollection <Game> games = new ObservableCollection <Game>()
            {
                new Game()
                {
                    Deck = deckToDelete
                },
                new Game()
                {
                    Deck = Deck.CreateNewDeck()
                },
                new Game()
                {
                    Deck = Deck.CreateNewDeck()
                },
                new Game()
                {
                    Deck = Deck.CreateNewDeck()
                },
                new Game()
                {
                    Deck = Deck.CreateNewDeck()
                },
            };

            List <Reward> rewards = new List <Reward>();

            Mock <ITracker> tracker = new Mock <ITracker>();

            tracker.Setup(t => t.Decks).Returns(decks);
            tracker.Setup(t => t.Rewards).Returns(rewards);
            tracker.Setup(t => t.Games).Returns(games);

            Mock <ITrackerFactory> trackerFactory = new Mock <ITrackerFactory>();

            trackerFactory.Setup(tf => tf.GetTracker()).Returns(tracker.Object);

            DeckService deckService = new DeckService(trackerFactory.Object);

            deckService.DeleteDeck(deckToDelete);

            Assert.AreEqual(4, games.Count);
            Assert.IsFalse(games.Any(g => g.DeckId == null || g.DeckId == deckToDelete.DeckId));

            Assert.AreEqual(2, decks.Count);
            Assert.IsFalse(decks.Contains(deckToDelete));
        }
예제 #4
0
        public void DeleteDeckTest002_RemoveRewardsRef()
        {
            Deck deckToDelete = Deck.CreateNewDeck();
            ObservableCollection <Deck> decks = new ObservableCollection <Deck>()
            {
                Deck.CreateNewDeck(),
                                        deckToDelete,
                                        Deck.CreateNewDeck()
            };

            List <Reward> rewards = new List <Reward>()
            {
                new Reward()
                {
                    ArenaDeck = deckToDelete
                },
                new Reward()
                {
                    ArenaDeck = deckToDelete
                },
                new Reward()
                {
                    ArenaDeck = deckToDelete
                },
            };

            ObservableCollection <Game> games = new ObservableCollection <Game>();

            Mock <ITracker> tracker = new Mock <ITracker>();

            tracker.Setup(t => t.Decks).Returns(decks);
            tracker.Setup(t => t.Rewards).Returns(rewards);
            tracker.Setup(t => t.Games).Returns(games);

            Mock <ITrackerFactory> trackerFactory = new Mock <ITrackerFactory>();

            trackerFactory.Setup(tf => tf.GetTracker()).Returns(tracker.Object);

            DeckService deckService = new DeckService(trackerFactory.Object);

            deckService.DeleteDeck(deckToDelete);

            Assert.AreEqual(3, rewards.Count);
            Assert.IsFalse(rewards.Any(r => r.ArenaDeckId != null));
        }
예제 #5
0
 public async Task Delete(long id)
 {
     await _deckService.DeleteDeck(id);
 }
예제 #6
0
        public async Task <ActionResult> DeleteConfirmed(long id)
        {
            await service.DeleteDeck(id);

            return(RedirectToAction("Index"));
        }