public void HiddenItems() { DefaultContext parent = new DefaultContext(); parent.Put( "test", "test" ); parent.MakeReadOnly(); DefaultContext child = new DefaultContext( parent ); child.Put( "check", "check" ); IContext context = (IContext) child; Assertion.Assert ( "check".Equals( context["check"] ) ); Assertion.Assert ( "test".Equals( context["test"] ) ); child.Hide( "test" ); try { object o = context["test"]; Assertion.Fail( "The item \"test\" was hidden in the child context, but could still be retrieved via Get()." ); } catch (ContextException) { // Supposed to be thrown. } child.MakeReadOnly(); try { child.Hide( "test" ); Assertion.Fail( "Hide() did not throw an exception, even though the context is supposed to be read-only." ); } catch (ContextException) { // Supposed to be thrown. } }
public void AddContext() { DefaultContext context = new DefaultContext(); context.Put( "key1", "value1" ); Assertion.Assert( "value1".Equals( context["key1"] ) ); context.Put( "key1", String.Empty ); Assertion.Assert( String.Empty.Equals( context["key1"] ) ); context.Put( "key1", "value1" ); context.MakeReadOnly(); try { context.Put( "key1", String.Empty ); Assertion.Fail( "You are not allowed to change a value after it has been made read only" ); } catch ( ContextException ) { Assertion.Assert( "Value is null", "value1".Equals( context["key1"] ) ); } }
public void CascadingContext() { DefaultContext parent = new DefaultContext(); parent.Put( "test", "ok test" ); parent.MakeReadOnly(); DefaultContext child = new DefaultContext( parent ); child.Put( "check", new ResolvableString("This is an ${test}.") ); child.MakeReadOnly(); IContext context = (IContext) child; Assertion.Assert ( "ok test".Equals( context["test"] ) ); Assertion.Assert ( ! "This is an ${test}.".Equals( context["check"] ) ); Assertion.Assert ( "This is an ok test.".Equals( context["check"] ) ); }
public void ResolveableObject() { DefaultContext context = new DefaultContext(); context.Put( "key1", new ResolvableString() ); context.Put( "test", "Cool Test" ); context.MakeReadOnly(); IContext newContext = (IContext) context; Assertion.Assert( "Cool Test".Equals( newContext["test"] ) ); Assertion.Assert( ! "This is a ${test}.".Equals( newContext["key1"] ) ); Assertion.Assert( "This is a Cool Test.".Equals( newContext["key1"] ) ); }