public static void Must___Should_return_AssertionTracker_with_SubjectValue_and_SubjectType_and_SubjectName_pulled_out_of_anonymous_object_property_and_Actions_Musted_bit_set___When_parameter_value_is_an_anonymous_object_with_one_property() { // Arrange var value1 = A.Dummy <object>(); string value2 = null; var expected1 = new AssertionTracker { SubjectValue = value1, SubjectType = typeof(object), SubjectName = "someSubject", Actions = Actions.Named | Actions.Musted, AssertionKind = AssertionKind.Unknown, }; var expected2 = new AssertionTracker { SubjectValue = value2, SubjectType = typeof(string), SubjectName = "someSubject", Actions = Actions.Named | Actions.Musted, AssertionKind = AssertionKind.Unknown, }; // Act var actual1 = new { someSubject = value1 }.Must(); var actual2 = new { someSubject = value2 }.Must(); // Assert AssertionTrackerComparer.Equals(expected1, actual1).Should().BeTrue(); AssertionTrackerComparer.Equals(expected2, actual2).Should().BeTrue(); }
public static AssertionTracker CloneWithActionVerifiedAtLeastOnce( this AssertionTracker assertionTracker) { var result = assertionTracker.Clone(); result.Actions |= Actions.VerifiedAtLeastOnce; return(result); }
public static void AsArg___Should_create_AssertionTracker_in_the_expected_state___When_parameter_value_is_not_of_type_AssertionTracker_and_not_an_anonymous_object() { // Arrange var nullValue = (string)null; var value = A.Dummy <decimal?>(); var name = A.Dummy <string>(); var expected1 = new AssertionTracker { SubjectValue = nullValue, SubjectType = typeof(string), SubjectName = null, Actions = Actions.Categorized, AssertionKind = AssertionKind.Argument, }; var expected2 = new AssertionTracker { SubjectValue = nullValue, SubjectType = typeof(string), SubjectName = name, Actions = Actions.Categorized | Actions.Named, AssertionKind = AssertionKind.Argument, }; var expected3 = new AssertionTracker { SubjectValue = value, SubjectType = typeof(decimal?), SubjectName = null, Actions = Actions.Categorized, AssertionKind = AssertionKind.Argument, }; var expected4 = new AssertionTracker { SubjectValue = value, SubjectType = typeof(decimal?), SubjectName = name, Actions = Actions.Categorized | Actions.Named, AssertionKind = AssertionKind.Argument, }; // Act var actual1 = nullValue.AsArg(); var actual2 = nullValue.AsArg(name); var actual3 = value.AsArg(); var actual4 = value.AsArg(name); // Assert AssertionTrackerComparer.Equals(actual1, expected1).Should().BeTrue(); AssertionTrackerComparer.Equals(actual2, expected2).Should().BeTrue(); AssertionTrackerComparer.Equals(actual3, expected3).Should().BeTrue(); AssertionTrackerComparer.Equals(actual4, expected4).Should().BeTrue(); }
public static AssertionTracker Clone( this AssertionTracker assertionTracker) { var result = new AssertionTracker { SubjectValue = assertionTracker.SubjectValue, SubjectType = assertionTracker.SubjectType, SubjectName = assertionTracker.SubjectName, Actions = assertionTracker.Actions, AssertionKind = assertionTracker.AssertionKind, }; return(result); }
public static void Must___Should_return_AssertionTracker_with_SubjectValue_set_to_parameter_value_and_SubjectType_set_to_TSubject_and_null_Name_and_Actions_Musted_bit_set___When_parameter_value_is_not_an_anonymous_object_and_not_null() { // Arrange var value = A.Dummy <string>(); var expected = new AssertionTracker { SubjectValue = value, SubjectType = typeof(string), SubjectName = null, Actions = Actions.Musted, AssertionKind = AssertionKind.Unknown, }; // Act var actual = value.Must(); // Assert AssertionTrackerComparer.Equals(expected, actual).Should().BeTrue(); }
public static void Must___Should_throw_ImproperUseOfAssertionFrameworkException___When_parameter_value_is_an_AssertionTracker_that_has_not_been_Categorized() { // Arrange var assertionTrackers1 = BuildAssertionTrackersWithAllCombinationsOfFlags() .Where(_ => !_.Actions.HasFlag(Actions.Categorized)) .ToList(); var assertionTrackers2 = BuildAssertionTrackersWithActionsInMustableState(assertionKind: AssertionKind.Unknown); var assertionTrackers = new AssertionTracker[0].Concat(assertionTrackers1).Concat(assertionTrackers2); // Act var actuals = assertionTrackers.Select(_ => Record.Exception(_.Must)); // Assert foreach (var actual in actuals) { actual.Should().BeOfType <ImproperUseOfAssertionFrameworkException>(); actual.Message.Should().Be(Verifications.SubjectAndOperationSequencingErrorMessage + " " + Verifications.ImproperUseOfFrameworkErrorMessage); } }
public static void Must___Should_return_AssertionTracker_with_null_SubjectValue_and_SubjectType_set_to_TSubject_and_null_Name_and_Actions_Musted_bit_set___When_parameter_value_is_null() { // Arrange var value1 = new { someSubject = A.Dummy <object>() }; var value1Type = value1.GetType(); value1 = null; string value2 = null; var expected1 = new AssertionTracker { SubjectValue = null, SubjectType = value1Type, SubjectName = null, Actions = Actions.Musted, AssertionKind = AssertionKind.Unknown, }; var expected2 = new AssertionTracker { SubjectValue = null, SubjectType = typeof(string), SubjectName = null, Actions = Actions.Musted, AssertionKind = AssertionKind.Unknown, }; // Act var actual1 = value1.Must(); var actual2 = value2.Must(); // Assert AssertionTrackerComparer.Equals(expected1, actual1).Should().BeTrue(); AssertionTrackerComparer.Equals(expected2, actual2).Should().BeTrue(); }