示例#1
0
        public async Task GetOrAddNull_WaitsOnNull()
        {
            Setup();

            // This thread will make an "Allocating" item, the "waiter" should wait for that to change.
            var       secondGenerator = Map.GetGenerator();
            Converter retrieved       = null;

            var waiter = new Task(() =>
            {
                retrieved = Generator.GetExistingOrAddNull(typeof(int));
            });

            // Make an "Allocating" item.
            Generator.GetExistingOrAddNull(typeof(int));

            waiter.Start();

            // Wait a second - this should be more than enough time for the waiter to be stuck in the waiting cycle.
            await Task.Delay(1000);

            // Now, we will finish the item, and see if the thread finishes accordingly.
            var newMapItem = new EmptyConverter();

            Generator.ApplyItem(newMapItem, typeof(int));

            await Task.Delay(1000);

            Assert.AreEqual(newMapItem, retrieved);
            ABSaveMap.ReleaseGenerator(secondGenerator);
        }
示例#2
0
        public void EmptyConverterWorks()
        {
            var converter = new EmptyConverter();

            Assert.AreEqual(converter.Call(""), notVisible);
            Assert.AreEqual(converter.Call(null), notVisible);
            Assert.AreEqual(converter.Call("foobar"), visible);
        }
        public void TestEmptyConverter()
        {
            var converter = new EmptyConverter();

            converter.TreatNullAsEmpty = false;

            Assert.AreEqual(false, converter.Convert(null, null, null, null));
            Assert.AreEqual(true, converter.Convert(string.Empty, null, null, null));
            Assert.AreEqual(true, converter.Convert(new object[0], null, null, null));
            Assert.AreEqual(false, converter.Convert(new object[] { new object() }, null, null, null));
            Assert.AreEqual(false, converter.Convert(new object[] { new object(), new object() }, null, null, null));

            converter.TreatNullAsEmpty = true;

            Assert.AreEqual(true, converter.Convert(null, null, null, null));
            Assert.AreEqual(true, converter.Convert(string.Empty, null, null, null));
            Assert.AreEqual(true, converter.Convert(new object[0], null, null, null));
            Assert.AreEqual(false, converter.Convert(new object[] { new object() }, null, null, null));
            Assert.AreEqual(false, converter.Convert(new object[] { new object(), new object() }, null, null, null));
        }