public void TryAdd()
        {
            const string value = "value";

            var sharedList = new SharedList <string>(LockingStrategy);

            bool doInsert = false;

            using (ISharedCollectionLock l = sharedList.GetReadLock())
            {
                if (!sharedList.Contains(value))
                {
                    doInsert = true;
                }
            }

            if (doInsert)
            {
                using (ISharedCollectionLock l = sharedList.GetWriteLock())
                {
                    if (!sharedList.Contains(value))
                    {
                        sharedList.Add(value);
                    }
                }
            }

            CollectionAssert.AreEqual(new List <string> {
                value
            }, sharedList.BackingList);
        }