public void CannotParseInvalidBase64String()
        {
            var parser = new EquipmentParser();
            var result = parser.ParseTemplateCode("pad!£$%^&*()_+-={}[]:@~;'#<>?,./");

            Assert.IsNull(result);
        }
        public void CanParseNewStyleEquipmentTemplateCode()
        {
            var parser = new EquipmentParser();
            var result = parser.ParseTemplateCode(newStyle);

            Assert.AreEqual(7, result.Count());

            ValidateItem(result.First(),
                         blueAxe);

            ValidateItem(result.Skip(1).First(),
                         yellowShield);

            ValidateItem(result.Skip(2).First(),
                         greyCuirass);

            ValidateItem(result.Skip(3).First(),
                         greyLeggings);

            ValidateItem(result.Skip(4).First(),
                         greyHelm);

            ValidateItem(result.Skip(5).First(),
                         greyBoots);

            ValidateItem(result.Skip(6).First(),
                         greyGauntlets);
        }
        public void CanParseOldStyleEquipmentTemplateCode()
        {
            var parser = new EquipmentParser();
            var result = parser.ParseTemplateCode("RmVYosJTLlNhCpsJNAlNxqosJA");

            Assert.AreEqual(5, result.Count());

            ValidateItem(result.First(),
                         ItemColor.Grey,
                         ItemIndex.RogueAttireMesmer,
                         EquipmentSlot.Chest,
                         new List <ModifierIndex>
            {
                ModifierIndex.RuneofSuperiorInspirationMagicMesmer
            });

            ValidateItem(result.Skip(1).First(),
                         ItemColor.Grey,
                         ItemIndex.EnchanterHoseMesmer,
                         EquipmentSlot.Legs,
                         new List <ModifierIndex>
            {
                ModifierIndex.RuneofSuperiorInspirationMagicMesmer
            });

            ValidateItem(result.Skip(2).First(),
                         ItemColor.Grey,
                         ItemIndex.AnimalMaskMesmer,
                         EquipmentSlot.Head,
                         new List <ModifierIndex>
            {
                ModifierIndex.RuneofSuperiorInspirationMagicMesmer
            });

            ValidateItem(result.Skip(3).First(),
                         ItemColor.Grey,
                         ItemIndex.EnchanterFootwearMesmer,
                         EquipmentSlot.Feet,
                         new List <ModifierIndex>
            {
                ModifierIndex.RuneofSuperiorInspirationMagicMesmer
            });

            ValidateItem(result.Skip(4).First(),
                         ItemColor.Grey,
                         ItemIndex.EnchanterGlovesMesmer,
                         EquipmentSlot.Hands,
                         new List <ModifierIndex>
            {
                ModifierIndex.RuneofSuperiorInspirationMagicMesmer
            });
        }
        public void CanCreateTemplateCode()
        {
            var parser = new EquipmentParser();
            var source = new NativeEquipmentBuild
            {
                blueAxe,
                yellowShield,
                greyCuirass,
                greyLeggings,
                greyHelm,
                greyBoots,
                greyGauntlets
            };

            var result = parser.CreateTemplateCode(source);

            Assert.AreEqual(newStyle, result);
        }