public void DsfFileWrite_GetState_ReturnsStateVariable() { var act = new DsfFileWrite { OutputPath = "Path", Overwrite = true, AppendTop = true, AppendBottom = true, FileContents = "some file contents", Username = "******", Password = "******", PrivateKeyFile = "/path/to/secret", Result = "[[result]]" }; //------------Execute Test--------------------------- var stateItems = act.GetState(); Assert.AreEqual(8, stateItems.Count()); var expectedResults = new[] { new StateVariable { Name = "OutputPath", Value = "Path", Type = StateVariable.StateType.Output }, new StateVariable { Name = "Overwrite", Value = "True", Type = StateVariable.StateType.Input }, new StateVariable { Name = "AppendTop", Value = "True", Type = StateVariable.StateType.Input }, new StateVariable { Name = "AppendBottom", Value = "True", Type = StateVariable.StateType.Input }, new StateVariable { Name = "FileContents", Value = "some file contents", Type = StateVariable.StateType.InputOutput }, new StateVariable { Name = "Username", Value = "myuser", Type = StateVariable.StateType.Input }, new StateVariable { Name = "PrivateKeyFile", Value = "/path/to/secret", Type = StateVariable.StateType.Input }, new StateVariable { Name = "Result", Value = "[[result]]", Type = StateVariable.StateType.Output } }; var iter = act.GetState().Select( (item, index) => new { value = item, expectValue = expectedResults[index] } ); //------------Assert Results------------------------- foreach (var entry in iter) { Assert.AreEqual(entry.expectValue.Name, entry.value.Name); Assert.AreEqual(entry.expectValue.Type, entry.value.Type); Assert.AreEqual(entry.expectValue.Value, entry.value.Value); } }