public void HasLocal_NewRemote_NewId_MinorChanges_ExactVersionMatch()
        {
            var remoteDeck = TestData.RemoteDeck1_MinorChanges;

            remoteDeck.Id = 2;
            _remoteDecks.Add(remoteDeck);
            var localDeck = TestData.LocalDeck1;

            localDeck.Version = new SerializableVersion(1, 1);
            localDeck.Versions.Add(TestData.LocalDeck1_MinorChanges);
            _localDecks.Add(localDeck);
            Assert.AreEqual(1, _localDecks.Count);
            Assert.AreEqual(1, _remoteDecks.Count);

            var decks = DeckImporter.GetImportedDecks(_remoteDecks, _localDecks);

            Assert.AreEqual(1, decks.Count);
            DeckComparer.AssertAreEqual(remoteDeck, decks[0].Deck);
            Assert.IsTrue(decks[0].Import);
            Assert.AreEqual(2, decks[0].ImportOptions.Count());

            var existingDeck = decks[0].SelectedImportOption as ExistingDeck;

            Assert.IsNotNull(existingDeck);
            Assert.AreEqual(0, existingDeck.NewVersion.Major);
            Assert.AreEqual(0, existingDeck.NewVersion.Minor);

            DeckManager.ImportDecksTo(_localDecks, decks, false, true, true);

            Assert.AreEqual(1, _localDecks.Count);
            Assert.AreEqual(1, _localDecks[0].Versions.Count);
            var newLocalDeck = TestData.LocalDeck1;

            newLocalDeck.HsId = 2;
            DeckComparer.AssertAreEqual(newLocalDeck, _localDecks[0]);
            DeckComparer.AssertAreEqual(TestData.LocalDeck1_MinorChanges, _localDecks[0].Versions[0]);
        }
        public void HasLocal_NewRemote_NewId_MajorChanges()
        {
            var remoteDeck = TestData.RemoteDeck1_MajorChanges;

            remoteDeck.Id = 2;
            _localDecks.Add(TestData.LocalDeck1);
            _remoteDecks.Add(remoteDeck);
            Assert.AreEqual(1, _localDecks.Count);
            Assert.AreEqual(1, _remoteDecks.Count);

            var decks = DeckImporter.GetImportedDecks(_remoteDecks, _localDecks);

            Assert.AreEqual(1, decks.Count);
            DeckComparer.AssertAreEqual(remoteDeck, decks[0].Deck);
            Assert.IsTrue(decks[0].Import);
            Assert.AreEqual(2, decks[0].ImportOptions.Count());
            Assert.AreEqual(typeof(NewDeck), decks[0].SelectedImportOption.GetType());

            DeckManager.ImportDecksTo(_localDecks, decks, false, true, true);

            Assert.AreEqual(2, _localDecks.Count);
            DeckComparer.AssertAreEqual(TestData.LocalDeck1, _localDecks[0]);
            DeckComparer.AssertAreEqual(remoteDeck, _localDecks[1]);
        }