public EqpIITAMConstArg(IEqpIITAMStateEngine eqpIITAMStateEngine, IEquipToolPanel equippedItemsPanel, IEquipToolPanel poolItemsPanel, IPickUpReceiverSwitch <IEquippableItemIcon> hoveredEqpIISwitch, IPickUpReceiverSwitch <IEquipToolPanel> hoveredEqpToolPanelSwitch, IEquipToolIGManager eqpToolIGManager)
 {
     thisEqpIITAMStateEngine       = eqpIITAMStateEngine;
     thisEquippedItemsPanel        = equippedItemsPanel;
     thisPoolItemsPanel            = poolItemsPanel;
     thisHoveredEqpIISwitch        = hoveredEqpIISwitch;
     thisHoveredEqpToolPanelSwitch = hoveredEqpToolPanelSwitch;
     thisEqpToolIGManager          = eqpToolIGManager;
 }
    public IEqpIITAMConstArg CreateStubEqpIITAMConstArg()
    {
        IEqpIITAMConstArg arg = Substitute.For <IEqpIITAMConstArg>();

        arg.eqpIITAMStateEngine.Returns(Substitute.For <IEqpIITAMStateEngine>());
        arg.equippedItemsPanel.Returns(Substitute.For <IEquipToolPanel>());
        arg.poolItemsPanel.Returns(Substitute.For <IEquipToolPanel>());
        arg.hoveredEqpIISwitch.Returns(Substitute.For <IPickUpReceiverSwitch <IEquippableItemIcon> >());
        arg.hoveredEqpToolPanelSwitch.Returns(Substitute.For <IPickUpReceiverSwitch <IEquipToolPanel> >());
        IEquipToolIGManager eqpToolIGManager = CreateStubEqpToolIGManager();

        arg.eqpToolIGManager.Returns(eqpToolIGManager);
        return(arg);
    }
    public void GetAllRelevantIGs_ArgIsNotNull_ReturnsPoolIGAndRelevantEquipIG()
    {
        IEqpIITAMConstArg arg;
        EquippableItemIconTransactionManager eqpIITAM = CreateEqpIITAM(out arg);
        IEquipToolIGManager eqpToolIGManager          = arg.eqpToolIGManager;
        IEquippableItemIcon pickedEqpII = Substitute.For <IEquippableItemIcon>();

        List <IIconGroup>   actualIGs          = eqpIITAM.GetAllRelevantIGs(pickedEqpII);
        List <IEquipToolIG> expectedEqpToolIGs = new List <IEquipToolIG>(new IEquipToolIG[] {
            eqpToolIGManager.GetRelevantPoolIG(),
            eqpToolIGManager.GetRelevantEquipIG(pickedEqpII)
        });

        Assert.That(actualIGs, Is.EqualTo(expectedEqpToolIGs));
    }
    public void GetAllRelevantIGs_ArgIsNull_ReturnsPoolIGAndAllRelevantEqpIGs()
    {
        IEqpIITAMConstArg arg;
        EquippableItemIconTransactionManager eqpIITAM = CreateEqpIITAM(out arg);
        IEquipToolIGManager eqpToolIGManager          = arg.eqpToolIGManager;

        List <IIconGroup> actualIGs   = eqpIITAM.GetAllRelevantIGs(null);
        List <IIconGroup> expectedIGs = new List <IIconGroup>(new IIconGroup[] {
            eqpToolIGManager.GetRelevantPoolIG(),
            eqpToolIGManager.GetRelevantEquippedBowIG(),
            eqpToolIGManager.GetRelevantEquippedWearIG(),
            eqpToolIGManager.GetRelevantEquippedCarriedGearsIG()
        });

        Assert.That(actualIGs, Is.EqualTo(expectedIGs));
    }
    public IEquipToolIGManager CreateStubEqpToolIGManager()
    {
        IEquipToolIGManager              eqpToolIGManager = Substitute.For <IEquipToolIGManager>();
        IEquipToolPoolIG                 poolIG           = Substitute.For <IEquipToolPoolIG>();
        IEquipToolEquippedBowIG          equippedBowIG    = Substitute.For <IEquipToolEquippedBowIG>();
        IEquipToolEquippedWearIG         equippedWearIG   = Substitute.For <IEquipToolEquippedWearIG>();
        IEquipToolEquippedCarriedGearsIG equippedCGearsIG = Substitute.For <IEquipToolEquippedCarriedGearsIG>();

        eqpToolIGManager.GetRelevantPoolIG().Returns(poolIG);
        eqpToolIGManager.GetRelevantEquippedBowIG().Returns(equippedBowIG);
        eqpToolIGManager.GetRelevantEquippedWearIG().Returns(equippedWearIG);
        eqpToolIGManager.GetRelevantEquippedCarriedGearsIG().Returns(equippedCGearsIG);
        eqpToolIGManager.GetRelevantEquipIG(Arg.Any <IEquippableItemIcon>()).Returns(Substitute.For <IEquipToolEquipIG>());
        List <IEquipToolEquipIG> allEquipIGs = new List <IEquipToolEquipIG>(new IEquipToolEquipIG[] {
            equippedBowIG, equippedWearIG, equippedCGearsIG
        });

        eqpToolIGManager.GetAllRelevantEquipIGs().Returns(allEquipIGs);

        return(eqpToolIGManager);
    }