Inheritance: ICrest
        public void TestDogma()
        {
            var naiveFileSystemCache = new CrestSimpleFileSystemCache();
            Crest.Settings.Cache = naiveFileSystemCache;

            var crest = new Crest() ;

            var killmail = crest.Killmails.FetchAsync("https://public-crest.eveonline.com/killmails/52099016/bdb36806e2ff4e92b6e1db70654592d3a7ba70f7/").Result;

            var type = killmail.Victim.ShipType;
            Assert.IsNotNull(type);

            Assert.IsNotNull(type.Dogma);

            Assert.IsNotNull(type.Dogma.Attributes);
            var firstAttribute = type.Dogma.Attributes.First();
            Assert.IsNotNull(firstAttribute.Attribute);

            var firstAttributeDogma = firstAttribute.Attribute;
            Assert.IsNotNull(firstAttributeDogma.Name);

            Assert.IsNotNull(firstAttributeDogma.Description);


        }
        public void TestGroups()
        {
            var naiveFileSystemCache = new CrestSimpleFileSystemCache();
          //  naiveFileSystemCache.ClearCache();
            Crest.Settings.Cache = naiveFileSystemCache;
            

            var crest = new Crest();
            var groups = crest.Inventory.GetGroups().ToArray();
            Assert.AreEqual(1215, groups.Count());
            Assert.AreEqual(2, groups.First(x=>x.Id == 9).Types.Count);
            var crestGroup = groups.First();
            Assert.AreEqual(false, crestGroup.Category.Published);

        }
        public void GroupTest()
        {
            var crest = new Crest();
            Crest.Settings.Cache = new CrestSqliteCache();

            var group = crest.Inventory.FetchGroupAsync(15)
                .Result;

            Assert.AreEqual(58, group.Types.Count);

             group = crest.Inventory.FetchGroupAsync(15)
              .Result;

            Assert.AreEqual(58, group.Types.Count);
        }
        public void TestAttributeLoading()
        {
            var Crest = new Crest();
            Crest.Settings.Cache = new CrestSqliteCache();
            var result = Crest.Dogma.FetchAttributeAsync(180)
                .Result;

            Assert.IsTrue(result.Published);

             Crest = new Crest();
             result = Crest.Dogma.FetchAttributeAsync(180)
                .Result;

            Assert.IsTrue(result.Published);
        }
        public void TestGetKillmail()
        {
            var crest = new Crest();

            var killmail = crest.Killmails.FetchAsync("https://public-crest.eveonline.com/killmails/52099016/bdb36806e2ff4e92b6e1db70654592d3a7ba70f7/").Result;
            Assert.AreEqual(52099016, killmail.KillID);
            Assert.AreEqual(DateTime.Parse("2016-02-18 09:15:27"), killmail.KillTime);
            Assert.AreEqual(4, killmail.Attackers.Count);

            var firstAttacker = killmail.Attackers.First();
            Assert.AreEqual(101000, firstAttacker.ShipType.Volume);

            //TODO richtigen cache test bauen

            var c2 = crest.Killmails.FetchAsync("https://public-crest.eveonline.com/killmails/52099016/bdb36806e2ff4e92b6e1db70654592d3a7ba70f7/").Result;
            Assert.AreEqual(101000, c2.Attackers.First().ShipType.Volume);
        }
        public void TestSellPrice()
        {
            var crest = new Crest();

            var type = crest.Inventory.FetchTypeAsync(22291)
                .Result;
            var sellItems = crest.Market.GetSellItems(JITA_ID, type);
            var marketItems = sellItems.ToArray();
            Assert.IsTrue(marketItems.Count() > 5);

                var jitaItems = marketItems.Where(x => x.Location.Name.StartsWith("Jita IV")).ToArray();

            Assert.IsTrue(jitaItems.Count() > 5);
            var minPrice = jitaItems
                .DefaultIfEmpty()
                .Min(x => x.Price);

            Assert.IsTrue(minPrice > 0);
        }