public void TestJournalModulePurchasedHandlingMinimalShip() { string line = "{ \"timestamp\":\"2018-12-25T22:55:11Z\", \"event\":\"ModuleBuy\", \"Slot\":\"Military01\", \"BuyItem\":\"$int_guardianshieldreinforcement_size5_class2_name;\", \"BuyItem_Localised\":\"Guardian Shield Reinforcement\", \"MarketID\":128666762, \"BuyPrice\":873402, \"Ship\":\"federation_corvette\", \"ShipID\":119 }"; List <Event> events = JournalMonitor.ParseJournalEntry(line); Assert.AreEqual(1, events.Count); ModulePurchasedEvent @event = (ModulePurchasedEvent)events[0]; Assert.IsNotNull(@event); Assert.IsInstanceOfType(@event, typeof(ModulePurchasedEvent)); Assert.AreEqual(119, (int)@event.shipid); Assert.IsNotNull(@event.slot); Assert.IsNotNull(@event.buymodule); PrivateObject privateObject = new PrivateObject(new ShipMonitor()); Ship ship = ShipDefinitions.FromModel(@event.ship); ship.LocalId = (int)@event.shipid; object[] moduleArgs = new object[] { ship, @event.slot, @event.buymodule }; privateObject.Invoke("AddModule", moduleArgs); foreach (Compartment compartment in ship.compartments) { if (compartment?.name == "Military01") { Assert.AreEqual("Guardian Shield Reinforcement", compartment.module?.invariantName); } } }
public void TestJournalModuleSoldHandlingMinimalShip() { string line = "{ \"timestamp\":\"2018-12-25T22:55:11Z\", \"event\":\"ModuleBuy\", \"Slot\":\"Slot01_Size7\", \"BuyItem\":\"$int_guardianshieldreinforcement_size5_class2_name;\", \"BuyItem_Localised\":\"Guardian Shield Reinforcement\", \"MarketID\":128666762, \"BuyPrice\":873402, \"Ship\":\"federation_corvette\", \"ShipID\":119 }"; List <Event> events = JournalMonitor.ParseJournalEntry(line); ModulePurchasedEvent @event = (ModulePurchasedEvent)events[0]; PrivateObject privateObject = new PrivateObject(new ShipMonitor()); Ship ship = ShipDefinitions.FromModel(@event.ship); ship.LocalId = (int)@event.shipid; string slot = @event.slot; Module module = @event.buymodule; object[] moduleArgs = new object[] { ship, slot, module }; privateObject.Invoke("AddModule", moduleArgs); // now sell the module moduleArgs = new object[] { ship, slot, null }; privateObject.Invoke("RemoveModule", moduleArgs); foreach (Compartment compartment in ship.compartments) { if (compartment?.name == "Military01") { Assert.IsNull(compartment.module); } } }
public void TestModulePurchasedEvent() { string line = @"{ ""timestamp"":""2018 - 07 - 24T05: 49:15Z"", ""event"":""ModuleBuy"", ""Slot"":""TinyHardpoint1"", ""BuyItem"":""$hpt_crimescanner_size0_class3_name;"", ""BuyItem_Localised"":""K-Warrant Scanner"", ""MarketID"":3223343616, ""BuyPrice"":101025, ""Ship"":""krait_mkii"", ""ShipID"":81 }"; List <Event> events = JournalMonitor.ParseJournalEntry(line); ModulePurchasedEvent @event = (ModulePurchasedEvent)events[0]; Assert.AreEqual("hpt_crimescanner_size0_class3", @event.buymodule.EDName.ToLowerInvariant()); Assert.AreEqual(3223343616, @event.marketId); Assert.AreEqual(101025, @event.buyprice); Assert.IsNull(@event.sellmodule); Assert.IsNull(@event.sellprice); Assert.AreEqual("Krait Mk. II", @event.ship); Assert.AreEqual(81, @event.shipid); }