public void CanGetNoPairsFromZeroTrickCollection()
        {
            this.Collection = new Shred30ContactCollection();

            List <Shred30ContactPair> pairsFromOneTrick = this.Collection.GetPairCollection().ToList();

            Assert.IsTrue(!pairsFromOneTrick.Any());
        }
        public void CanAddToCollection()
        {
            this.Collection = new Shred30ContactCollection();

            this.Collection.Add(new Shred30Trick(OrdinalSideType.Left, MockFootbagTricks.Ripwalk));

            Assert.AreEqual(MockFootbagTricks.Ripwalk.TrickId, this.Collection[0].FootbagTrick.TrickId);
        }
        public void CanGetNoPairsFromOneTrickCollection()
        {
            List <IShred30Contact> contacts = new List <IShred30Contact>
            {
                new Shred30Trick(OrdinalSideType.Left, MockFootbagTricks.Ripwalk),
            };

            this.Collection = new Shred30ContactCollection(contacts);

            List <Shred30ContactPair> pairsFromOneTrick = this.Collection.GetPairCollection().ToList();

            Assert.IsTrue(!pairsFromOneTrick.Any());
        }
        public void CanGetCollectionFromList()
        {
            List <IShred30Contact> contacts = new List <IShred30Contact>
            {
                new Shred30Trick(OrdinalSideType.Left, MockFootbagTricks.Ripwalk),
                new Shred30Trick(OrdinalSideType.Right, MockFootbagTricks.Blur)
            };

            this.Collection = new Shred30ContactCollection(contacts);

            Assert.AreEqual(MockFootbagTricks.Ripwalk.TrickId, this.Collection[0].FootbagTrick.TrickId);
            Assert.AreEqual(MockFootbagTricks.Blur.TrickId, this.Collection[1].FootbagTrick.TrickId);
        }
Example #5
0
        /// <summary>Gets the unique contacts.</summary>
        /// <param name="shred30Contacts">The shred30 contacts.</param>
        public IEnumerable <IShred30Contact> GetUniqueContacts(IEnumerable <IShred30Contact> shred30Contacts)
        {
            Shred30ContactCollection uniqueContacts = new Shred30ContactCollection();

            foreach (IShred30Contact contact in shred30Contacts)
            {
                if (contact.CanBeUnique && !uniqueContacts.Contains(contact, new Shred30ContactComparer()))
                {
                    uniqueContacts.Add(contact);
                }
            }

            return(this.GetFinalizedUniqueContacts(uniqueContacts));
        }
        public void CanGetPairsFromCollection()
        {
            List <IShred30Contact> contacts = new List <IShred30Contact>
            {
                new Shred30Trick(OrdinalSideType.Left, MockFootbagTricks.Ripwalk),
                new Shred30Trick(OrdinalSideType.Right, MockFootbagTricks.Blur),
                new Shred30Trick(OrdinalSideType.Right, MockFootbagTricks.Dimwalk)
            };

            this.Collection = new Shred30ContactCollection(contacts);

            List <Shred30ContactPair> pairs = this.Collection.GetPairCollection().ToList();

            Assert.AreEqual(2, pairs.Count());
            Assert.AreEqual(MockFootbagTricks.Ripwalk.TrickId, pairs[0].FirstContact.FootbagTrick.TrickId);
            Assert.AreEqual(MockFootbagTricks.Blur.TrickId, pairs[0].SecondContact.FootbagTrick.TrickId);
            Assert.AreEqual(MockFootbagTricks.Blur.TrickId, pairs[1].FirstContact.FootbagTrick.TrickId);
            Assert.AreEqual(MockFootbagTricks.Dimwalk.TrickId, pairs[1].SecondContact.FootbagTrick.TrickId);
        }
        /// <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);
        }