public void TestNoTuningDetailsChannel()
        {
            Dictionary <int, ITvCardHandler> cards = new Dictionary <int, ITvCardHandler>();
            List <IChannel> tuningDetails          = new List <IChannel>();

            IUser           user          = Fakes.FakeUser();
            TvBusinessLayer businessLayer = Fakes.FakeTvBusinessLayer();;
            TVController    controller    = Fakes.FakeTVController();

            DVBCardMocks   dvbCardMocks = GetCardMockByCardType(CardType.DvbC, tuningDetails, user);
            ITvCardHandler cardHandler1 = dvbCardMocks.GetMockedCardHandler();

            cards.Add(dvbCardMocks.CardId, cardHandler1);


            ChannelMap channelMap;
            Channel    channel = ChannelMocks.GetChannel(out channelMap);

            Isolate.WhenCalled(() => businessLayer.GetTuningChannelsByDbChannel(channel)).WillReturn(tuningDetails);
            TVControllerMocks.CardPresent(cardHandler1.DataBaseCard.IdCard, controller);

            SetupChannelMapping(cardHandler1, channelMap, businessLayer, channel);

            AdvancedCardAllocation allocation = new AdvancedCardAllocation(businessLayer, controller);

            TvResult          result;
            List <CardDetail> availCards = allocation.GetFreeCardsForChannel(cards, channel, ref user, out result);

            Assert.AreEqual(0, availCards.Count, "The number of cards returned is not as expected");
        }
        private void TestWrongTuningDetailForCardForFTAChannel(CardType cardType)
        {
            Dictionary <int, ITvCardHandler> cards = new Dictionary <int, ITvCardHandler>();
            List <IChannel> tuningDetails          = new List <IChannel>();

            IUser           user          = Fakes.FakeUser();
            TvBusinessLayer businessLayer = Fakes.FakeTvBusinessLayer();;
            TVController    controller    = Fakes.FakeTVController();

            //we need to pick a different cardtype here-
            CardType cardTypeDifferent = cardType;

            switch (cardType)
            {
            case CardType.DvbT:
                cardTypeDifferent = CardType.DvbC;
                break;

            case CardType.DvbC:
                cardTypeDifferent = CardType.DvbS;
                break;

            case CardType.DvbS:
                cardTypeDifferent = CardType.DvbT;
                break;
            }
            IChannel tuningDetail1 = GetFTATuningDetailBasedOnCardType(cardTypeDifferent);

            tuningDetails.Add(tuningDetail1);

            DVBCardMocks   dvbCardMocks = GetCardMockByCardType(cardType, tuningDetails, user);
            ITvCardHandler cardHandler1 = dvbCardMocks.GetMockedCardHandler();

            //ITvCardHandler cardHandler1 = DVBTCardMocks.AddIdleFTADVBTCard(tuningDetail1, user);
            cards.Add(dvbCardMocks.CardId, cardHandler1);


            ChannelMap channelMap;
            Channel    channel = ChannelMocks.GetChannel(out channelMap);

            Isolate.WhenCalled(() => businessLayer.GetTuningChannelsByDbChannel(channel)).WillReturn(tuningDetails);
            TVControllerMocks.CardPresent(cardHandler1.DataBaseCard.IdCard, controller);

            SetupChannelMapping(cardHandler1, channelMap, businessLayer, channel);

            AdvancedCardAllocation allocation = new AdvancedCardAllocation(businessLayer, controller);

            TvResult          result;
            List <CardDetail> availCards = allocation.GetFreeCardsForChannel(cards, channel, ref user, out result);

            Assert.AreEqual(0, availCards.Count, "The number of cards returned is not as expected");
        }
        private void TestOneAvailLockedCardForFTAChannel(CardType cardType)
        {
            Dictionary <int, ITvCardHandler> cards = new Dictionary <int, ITvCardHandler>();
            List <IChannel> tuningDetails          = new List <IChannel>();

            IUser           user          = Fakes.FakeUser();
            TvBusinessLayer businessLayer = Fakes.FakeTvBusinessLayer();;
            TVController    controller    = Fakes.FakeTVController();

            IChannel tuningDetail1 = GetFTATuningDetailBasedOnCardType(cardType);

            tuningDetails.Add(tuningDetail1);

            DVBCardMocks dvbCardMocks = GetCardMockByCardType(cardType, tuningDetails, user);

            dvbCardMocks.Idle = false;
            ITvCardHandler cardHandler1 = dvbCardMocks.GetMockedCardHandler();

            cards.Add(dvbCardMocks.CardId, cardHandler1);

            ChannelMap channelMap;
            Channel    channel = ChannelMocks.GetChannel(out channelMap);

            Isolate.WhenCalled(() => businessLayer.GetTuningChannelsByDbChannel(channel)).WillReturn(tuningDetails);
            TVControllerMocks.CardPresent(cardHandler1.DataBaseCard.IdCard, controller);

            SetupChannelMapping(cardHandler1, channelMap, businessLayer, channel);

            AdvancedCardAllocation allocation = new AdvancedCardAllocation(businessLayer, controller);

            TvResult          result;
            List <CardDetail> availCards = allocation.GetFreeCardsForChannel(cards, channel, ref user, out result);

            Assert.AreEqual(1, availCards.Count, "The number of cards returned is not as expected");
            Assert.AreEqual(availCards[0].SameTransponder, false, "same transponder not as expected");
        }