private void PacketReceive_EventCanceled <TPacket, TEvent>(TPacket packet, IPlayer sender) where TPacket : IPacket where TEvent : Event { Action <PacketReceiveEvent <TPacket> >?registeredHandler = null; var events = Mock.Of <IEventManager>(); var log = Mock.Of <ILogger>(); Mock.Get(events) .Setup(em => em.RegisterHandler(It.IsAny <Action <PacketReceiveEvent <TPacket> > >(), log)) .Callback <Action <PacketReceiveEvent <TPacket> >, ILogger>( (handler, log) => registeredHandler = handler); using var chestService = new OrionChestService(events, log); var evt = new PacketReceiveEvent <TPacket>(packet, sender); Mock.Get(events) .Setup(em => em.Raise(It.IsAny <TEvent>(), log)) .Callback <TEvent, ILogger>((evt, log) => evt.Cancel()); Assert.NotNull(registeredHandler); registeredHandler !(evt); Assert.True(evt.IsCanceled); Mock.Get(events).VerifyAll(); }
public void Count_Get() { var events = Mock.Of <IEventManager>(); var log = Mock.Of <ILogger>(); using var chestService = new OrionChestService(events, log); Assert.Equal(Terraria.Main.maxChests, chestService.Count); }
public void Item_GetInvalidIndex_ThrowsIndexOutOfRangeException(int index) { var events = Mock.Of <IEventManager>(); var log = Mock.Of <ILogger>(); using var chestService = new OrionChestService(events, log); Assert.Throws <IndexOutOfRangeException>(() => chestService[index]); }
public void Item_GetMultipleTimes_ReturnsSameInstance() { Terraria.Main.chest[0] = new Terraria.Chest(); var events = Mock.Of <IEventManager>(); var log = Mock.Of <ILogger>(); using var chestService = new OrionChestService(events, log); var chest = chestService[0]; var chest2 = chestService[0]; Assert.Same(chest, chest2); }
public void Item_Get() { Terraria.Main.chest[1] = new Terraria.Chest(); var events = Mock.Of <IEventManager>(); var log = Mock.Of <ILogger>(); using var chestService = new OrionChestService(events, log); var chest = chestService[1]; Assert.Equal(1, chest.Index); Assert.Same(Terraria.Main.chest[1], ((OrionChest)chest).Wrapped); }
public void GetEnumerator() { for (var i = 0; i < Terraria.Main.maxChests; ++i) { Terraria.Main.chest[i] = new Terraria.Chest(); } var events = Mock.Of <IEventManager>(); var log = Mock.Of <ILogger>(); using var chestService = new OrionChestService(events, log); var chests = chestService.ToList(); for (var i = 0; i < chests.Count; ++i) { Assert.Same(Terraria.Main.chest[i], ((OrionChest)chests[i]).Wrapped); } }