public void AddOrThrow_Func()
        {
            var target = new ConcurrentIndexed <int, string>();

            target.AddOrThrow(1, () => "1");

            Assert.ThrowsAny <Exception>(() => target.AddOrThrow(1, () => "1!"));
        }
        public void AddUpdateOrThrow(int i)
        {
            var thing = new ConcurrentIndexed <int, string>();

            thing.AddOrThrow(i, "hello");
            Assert.Equal("hello", thing.GetOrThrow(i));
            Assert.Throws <Exception>(() =>
            {
                thing.AddOrThrow(i, "hello");
            });

            thing.UpdateOrThrow(i, (s) => s + " world");
            Assert.Equal("hello world", thing.GetOrThrow(i));
        }
        public void GetOrTrhow()
        {
            var target = new ConcurrentIndexed <int, string>();

            Assert.ThrowsAny <Exception>(() => target.GetOrThrow(1));

            target.AddOrThrow(1, "1");

            Assert.Equal("1", target.GetOrThrow(1));
        }
        public void TryGetValue()
        {
            var target = new ConcurrentIndexed <int, string>();

            Assert.False(target.TryGetValue(1, out var _));

            target.AddOrThrow(1, "1");

            Assert.True(target.TryGetValue(1, out var second));
            Assert.Equal("1", second);
        }
        public void Enumerate()
        {
            var thing = new ConcurrentIndexed <int, string>();

            for (var i = 0; i < 100; i++)
            {
                thing.AddOrThrow(i, () => $"{i}");
            }
            var count = 0;

            foreach (var uhh in thing)
            {
                count++;
            }
            Assert.Equal(100, count);
        }
        public void DoOrThrow_Func()
        {
            var target = new ConcurrentIndexed <int, string>();

            Assert.ThrowsAny <Exception>(() => target.DoOrThrow(1, x => x + "!"));

            target.AddOrThrow(1, "1");
            string s = null;

            target.DoOrThrow(1, x => {
                s = x + "!";
                return(x);
            });

            Assert.Equal("1!", s);
        }
Beispiel #7
0
        public void TryGetValue()
        {
            var target = new ConcurrentIndexed <HashTestHelper, int>();

            target.AddOrThrow(new HashTestHelper(1, 1), 1);
            target.AddOrThrow(new HashTestHelper(1, 2), 2);
            target.AddOrThrow(new HashTestHelper(1, 3), 3);
            target.AddOrThrow(new HashTestHelper(1, 4), 4);
            target.AddOrThrow(new HashTestHelper(1, 5), 5);
            target.AddOrThrow(new HashTestHelper(1, 6), 6);

            Assert.True(target.TryGetValue(new HashTestHelper(1, 1), out var res1));
            Assert.Equal(1, res1);
            Assert.True(target.TryGetValue(new HashTestHelper(1, 2), out var res2));
            Assert.Equal(2, res2);
            Assert.True(target.TryGetValue(new HashTestHelper(1, 3), out var res3));
            Assert.Equal(3, res3);
            Assert.True(target.TryGetValue(new HashTestHelper(1, 4), out var res4));
            Assert.Equal(4, res4);
            Assert.True(target.TryGetValue(new HashTestHelper(1, 5), out var res5));
            Assert.Equal(5, res5);
            Assert.True(target.TryGetValue(new HashTestHelper(1, 6), out var res6));
            Assert.Equal(6, res6);
        }
Beispiel #8
0
 // not convinced this is going to work...
 // it's written but not called
 // MemberKindLookup goes before the types are made
 // so how would we get the field?
 internal void AddStaticField(FieldInfo fieldInfo, IMemberDefinition member)
 {
     staticFields.AddOrThrow(member, fieldInfo);
 }
Beispiel #9
0
 internal void AddTacField(IOrType <IObjectDefiniton, IInterfaceType, ITypeOr> codeElement, IMemberDefinition contextDefinition)
 {
     tacFields.AddOrThrow(contextDefinition, codeElement);
 }
Beispiel #10
0
 internal void AddArgument(IOrType <IImplementationDefinition, IInternalMethodDefinition, IEntryPointDefinition> codeElement, IMemberDefinition parameterDefinition)
 {
     arguments.AddOrThrow(parameterDefinition, codeElement);
 }
Beispiel #11
0
 internal void AddLocal(IOrType <IEntryPointDefinition, IImplementationDefinition, IInternalMethodDefinition, IRootScope> owner, IMemberDefinition value)
 {
     locals.AddOrThrow(value, owner);
 }