Example #1
0
        public void CanGetCorrectSideFromSameSideVariant()
        {
            IShred30Contact trick = new Shred30Trick(OrdinalSideType.Right, MockFootbagTricks.Mirage);

            trick.IsSameSideVariant = true;

            Assert.AreEqual(OrdinalSideType.Left, trick.GetEndSide());
        }
Example #2
0
        public void CanContactBeUnique()
        {
            IShred30Contact shred30Trick = new Shred30Trick(OrdinalSideType.None, new FootbagTrick());
            IShred30Contact drop         = new Drop();

            Assert.IsTrue(shred30Trick.CanBeUnique);
            Assert.IsFalse(drop.CanBeUnique);
        }
Example #3
0
        public void CanGetIsDrop()
        {
            IShred30Contact trick = new Shred30Trick(OrdinalSideType.None, MockFootbagTricks.Blur);
            IShred30Contact drop  = new Drop();

            Assert.IsFalse(trick.IsDrop);
            Assert.IsTrue(drop.IsDrop);
        }
Example #4
0
        public void CanGetAddsOfTrick()
        {
            IShred30Contact trick = new Shred30Trick(
                OrdinalSideType.None
                ,
                MockFootbagTricks.BlurryWhirl);

            Assert.AreEqual(5, trick.Adds);
        }
Example #5
0
        public void CanGetOrdinalSideBasedOnRelativeEnd()
        {
            IShred30Contact ripwalk = new Shred30Trick(
                OrdinalSideType.Left,
                MockFootbagTricks.Ripwalk);
            IShred30Contact blur = new Shred30Trick(
                OrdinalSideType.Left,
                MockFootbagTricks.Blur);

            Assert.AreEqual(ripwalk.GetEndSide(), OrdinalSideType.Right);
            Assert.AreEqual(blur.GetEndSide(), OrdinalSideType.Left);
        }
Example #6
0
        public void CanCompareTrickWithDrop()
        {
            IShred30Contact first = new Shred30Trick
                                    (
                OrdinalSideType.Left
                ,
                MockFootbagTricks.Ripwalk);
            IShred30Contact second = new Drop();

            Assert.IsFalse(this.Comparer.Equals(first, second));
            Assert.IsFalse(this.Comparer.Equals(second, first));
        }
Example #7
0
        public void CanNotCompareTricksWithNoside()
        {
            IShred30Contact first = new Shred30Trick
                                    (
                OrdinalSideType.None
                ,
                MockFootbagTricks.Ripwalk);
            IShred30Contact second = new Shred30Trick
                                     (
                OrdinalSideType.Left
                ,
                MockFootbagTricks.Ripwalk);

            Assert.IsFalse(this.Comparer.Equals(first, second));
        }
Example #8
0
        public void CanCompareDoubleDownsStartingOnOppositeSide_UnEqual()
        {
            IShred30Contact first = new Shred30Trick
                                    (
                OrdinalSideType.Right
                ,
                MockFootbagTricks.DownDoubleDown);
            IShred30Contact second = new Shred30Trick
                                     (
                OrdinalSideType.Left
                ,
                MockFootbagTricks.DownOverDown);

            Assert.IsFalse(this.Comparer.Equals(first, second));
        }
        /// <summary>Deserializes the specified contacts string.</summary>
        /// <param name="contactsJson">The contacts string.</param>
        public IEnumerable <IShred30Contact> Deserialize()
        {
            List <ContactElementJson> contactElementsJson =
                JsonConvert.DeserializeObject <List <ContactElementJson> >(this.ContactsJson);

            bool anyElementHasBlankName = contactElementsJson
                                          .Any(contactElement => string.IsNullOrWhiteSpace(contactElement.Name));

            if (anyElementHasBlankName)
            {
                throw new DeserializationException("Cannot deserialize contacts because not all elements have a name.");
            }

            Shred30ContactCollection shred30Contacts = new Shred30ContactCollection();

            foreach (ContactElementJson contactElementJson in contactElementsJson)
            {
                IShred30Contact shred30Contact;
                if (contactElementJson.Name.Equals(DropElementName, StringComparison.OrdinalIgnoreCase))
                {
                    shred30Contact = new Drop();
                }
                else
                {
                    shred30Contact = new Shred30Trick(
                        contactElementJson.Side,
                        contactElementJson.Name,
                        contactElementJson.SameSide
                        );
                }

                shred30Contacts.Add(shred30Contact);
            }

            return(shred30Contacts);
        }