コード例 #1
0
        public void Should_be_able_to_retreive_last_reference_field_after_multiple_set()
        {
            //Given
            const string dummyFieldName = "dummyField";
            var          initialValue   = new ProxyReferenceType();
            Dictionary <string, ReferenceType> referenceFields = new Dictionary <string, ReferenceType>
            {
                { dummyFieldName, initialValue },
            };
            var refType     = new ProxyReferenceType(referenceFields);
            var fieldValue  = new ProxyReferenceType();
            var fieldValue2 = new ProxyReferenceType();
            var fieldValue3 = new ProxyReferenceType();

            //When
            refType.SetField(dummyFieldName, fieldValue);
            refType.SetField(dummyFieldName, fieldValue2);
            refType.SetField(dummyFieldName, fieldValue3);

            //Then
            var retreivedValue = refType.GetReference(dummyFieldName);

            Check.That(retreivedValue).Not.IsSameReferenceAs(initialValue);
            Check.That(retreivedValue).Not.IsSameReferenceAs(fieldValue);
            Check.That(retreivedValue).Not.IsSameReferenceAs(fieldValue2);
            Check.That(retreivedValue).IsSameReferenceAs(fieldValue3);
        }
コード例 #2
0
        public void Should_not_be_able_to_set_non_existing_value_field()
        {
            //Given
            var refType    = new ProxyReferenceType();
            var fieldValue = (1, 2, 3);

            //When Then
            Check.ThatCode(() => refType.SetField("not existing field", fieldValue)).Throws <KeyNotFoundException>();
        }
コード例 #3
0
        public void Should_be_able_to_retreive_last_value_field_after_multiple_set()
        {
            //Given
            const string dummyFieldName = "dummyField";
            var          initialValue   = (false, 0);
            Dictionary <string, ValueType> valueFields = new Dictionary <string, ValueType>
            {
                { dummyFieldName, initialValue },
            };
            var refType = new ProxyReferenceType(valueFields);

            //When
            refType.SetField(dummyFieldName, (true, 3));
            refType.SetField(dummyFieldName, (false, 3));
            refType.SetField(dummyFieldName, (false, 5));

            //Then
            var retreivedValue = refType.GetValue(dummyFieldName);

            Check.That(retreivedValue).IsEqualTo((false, 5));
        }
コード例 #4
0
        public void Should_not_be_able_to_set_value_field_with_other_type()
        {
            //Given
            const string dummyFieldName = "dummyField";
            var          initialValue   = (false, 0);
            Dictionary <string, ValueType> valueFields = new Dictionary <string, ValueType>
            {
                { dummyFieldName, initialValue },
            };
            var refType = new ProxyReferenceType(valueFields);

            //When Then
            Check.ThatCode(() => refType.SetField(dummyFieldName, (sbyte)-3)).Throws <ArgumentException>();
        }