Click or drag to resize

PropertyChangedAssertionsRaised_PropertyChangedT Method (SmartAssertPlaceHolder, T, String)

Creates an Assertion that ensure an object property/indexer changed to a different value in the Act part of your test.

Namespace:  SmartTests.Assertions
Assembly:  SmartTests (in SmartTests.dll) Version: 1.12.0
Syntax
public static Assertion Raised_PropertyChanged<T>(
	this SmartAssertPlaceHolder _,
	T instance,
	params string[] propertyNames
)
where T : INotifyPropertyChanged

Parameters

_
Type: SmartTestsSmartAssertPlaceHolder
The dummy place holder for all Smart Assertions.
instance
Type: T
The instance for which the property/indexer should change.
propertyNames
Type: SystemString
The names of the property/indexer that should change.

Type Parameters

T
The type of the property/indexer that should change.

Return Value

Type: Assertion
The newly created Assertion.

Usage Note

In Visual Basic and C#, you can call this method as an instance method on any object of type SmartAssertPlaceHolder. When you use instance method syntax to call this method, omit the first parameter. For more information, see Extension Methods (Visual Basic) or Extension Methods (C# Programming Guide).
Exceptions
ExceptionCondition
ArgumentNullException If instance or propertyNames are null.
SmartTestException

If the INotifyPropertyChanged event is not raised.

If PropertyName is not in propertyNames in the event.
Remarks
This Assertion ensures that:
  1. Before the Act -

    Nothing special.

  2. During the Act -

    Ensures the PropertyChanged event is raised.

    The PropertyName is one of propertyNames; otherwise a SmartTestException is thrown.

    Note that you have to repeat names if the event is raised multiple times for the same property.

  3. After the Act -

    If the event is not raised, a SmartTestException is thrown.

Examples
In this example, the Smart Assertion verifies that the PropertyChanged event is raised twice, once for MyProperty and once for OtherProperty, in any order.
[Test]
public void MyMethodTest()
{
    var mc = new MyClass();
    RunTest( ValidValue.IsValid,
             () => mc.MyMethod(),
             SmartAssert.Raised_PropertyChanged( mc, nameof(MyClass.MyProperty), nameof(MyClass.OtherProperty) ) );
}
See Also