private Expression <Action> GetActionForConstant(ConstantExpression constantExpression, Expression resultExpression, ExpressionType expressionType, string lambdaString) { if (constantExpression.Value == null) { if (expressionType == ExpressionType.Equal) { return(AssertBuilder.GetIsNullAction(resultExpression, lambdaString)); } else { return(AssertBuilder.GetIsNotNullAction(resultExpression, lambdaString)); } } var value = (bool)constantExpression.Value; if (expressionType == ExpressionType.NotEqual) { value = !value; } return(value ? AssertBuilder.GetIsTrueAction(resultExpression, lambdaString) : AssertBuilder.GetIsFalseAction(resultExpression, lambdaString)); }
public void CastBeforeAssertSubType() { Zoo zoo = new Zoo(); AnimalCollection animals = zoo.Animals; CodeGenOptions options = GetDefaultOptions(); options.EnumerateAllCollectionProperties = true; options.UpcastTypes.Add(typeof(IAnimal)); AssertBuilder codeGen = new AssertBuilder(); GetAssertBuilderOutput(codeGen, animals, options); Assert.AreEqual(@"Assert.AreEqual(3, target.Count); Assert.AreEqual(4, ((UnitTests.Animal)target[0]).LegCount); Assert.AreEqual(null, ((UnitTests.Animal)target[0]).Sound); Assert.AreEqual(2, ((UnitTests.Animal)target[1]).LegCount); Assert.AreEqual(null, ((UnitTests.Animal)target[1]).Sound); Assert.AreEqual(3, ((UnitTests.Animal)target[2]).LegCount); Assert.AreEqual(null, ((UnitTests.Animal)target[2]).Sound); Assert.AreEqual(9, target.TotalLegs); Assert.AreEqual(4, target.Capacity); Assert.AreEqual(3, target.Count);".NormaliseCrlf(), codeGen.GetEmittedCode().NormaliseCrlf()); }
public void DateTimeEmitsTimeOfDayOnlyWhenNecessary() { DateTime testDate = DateTime.Parse("2001-02-03"); AssertBuilder codeGen = new AssertBuilder(); GetAssertBuilderOutput(codeGen, testDate); Assert.AreEqual(@"Assert.AreEqual(Convert.ToDateTime(""03-Feb-2001""), target);", codeGen.GetEmittedCode()); }
public void DateTimeDoesntEnumerate() { DateTime testDate = DateTime.Parse("2001-02-03 04:05:06"); AssertBuilder codeGen = new AssertBuilder(); GetAssertBuilderOutput(codeGen, testDate); Assert.AreEqual(@"Assert.AreEqual(Convert.ToDateTime(""03-Feb-2001 04:05:06.000""), target);", codeGen.GetEmittedCode()); }
public void Enum() { Classification classification = Classification.Mineral; AssertBuilder codeGen = new AssertBuilder(); GetAssertBuilderOutput(codeGen, classification); Assert.AreEqual(@"Assert.AreEqual(UnitTests.Classification.Mineral, target);", codeGen.GetEmittedCode()); }
public void DateTimeOffsetToString() { var testDate = DateTimeOffset.Parse("2015-03-30T15:20:26.7589030+11:00"); var codeGen = new AssertBuilder(); GetAssertBuilderOutput(codeGen, testDate); Assert.AreEqual(@"Assert.AreEqual(DateTimeOffset.Parse(""2015-03-30T15:20:26.7589030+11:00""), target);", codeGen.GetEmittedCode()); }
private void GetAssertBuilderOutput(AssertBuilder codeGen, Type target) { ObjectXRay xray = ObjectXRay.NewType(typeof(AssertBuilder), codeGen); xray.SetProperty("TestMode", true); codeGen.Generate(target); Console.WriteLine("Assert.AreEqual(@\"" + EncodeForString(codeGen.GetEmittedCode()) + "\", codeGen.GetEmittedCode());"); }
public void ToStringOverride() { AbsoluteBearing bearing = new AbsoluteBearing(12.34m); AssertBuilder codeGen = new AssertBuilder(); GetAssertBuilderOutput(codeGen, bearing); Assert.AreEqual(@"Assert.AreEqual(""12.34000000"", target.ToString());", codeGen.GetEmittedCode()); }
public void NoPropertiesToEnumerate() { AbsoluteBearing bearing = new AbsoluteBearing(12.3456789m); AssertBuilder codeGen = new AssertBuilder(); GetAssertBuilderOutput(codeGen, bearing); Assert.AreEqual(@"Assert.AreEqual(""12.34567890"", target.ToString());", codeGen.GetEmittedCode()); }
protected override Expression <Action> GetActionInternal(BinaryExpression binaryExpression, string lambda) { if (binaryExpression.Left.Type.IsNot <string>() && binaryExpression.Left.Type.IsEnumerableType()) { return(AssertBuilder.GetCollectionNotEquals(binaryExpression.Right, binaryExpression.Left, lambda)); } return(AssertBuilder.GetAreNotEqualAction(binaryExpression.Right, binaryExpression.Left, lambda)); }
public void StaticClass() { AssertBuilder codeGen = new AssertBuilder(); GetAssertBuilderOutput(codeGen, typeof(Configuration)); Assert.AreEqual(@"Assert.AreEqual(""value1"", Configuration.ConfigValue1); Assert.AreEqual(-1, Configuration.ConfigValue2);".NormaliseCrlf(), codeGen.GetEmittedCode().NormaliseCrlf()); }
public void SinglelineStringsEscaped() { string input = "this tests that the single line string escaping \"Here is a quoted message\" "; AssertBuilder codeGen = new AssertBuilder(); GetAssertBuilderOutput(codeGen, input); Assert.AreEqual(@"Assert.AreEqual(""this tests that the single line string escaping \""Here is a quoted message\"" "", target);", codeGen.GetEmittedCode()); }
public void Decimal() { Decimal myNumber = 3.14159654m; AssertBuilder codeGen = new AssertBuilder(); GetAssertBuilderOutput(codeGen, myNumber); Assert.AreEqual(@"Assert.AreEqual(3.14159654m, target);", codeGen.GetEmittedCode()); }
public void AssertBuilderDemo() { // Arrange, Act var car = new Car(); // Assert AssertBuilder.Generate(car, "car"); // Look in the error message and you will see the asserts }
public void Double() { Double myNumber = 3.14159654; AssertBuilder codeGen = new AssertBuilder(); GetAssertBuilderOutput(codeGen, myNumber); Assert.AreEqual("Assert.AreEqual(\"3.14159654\", target.ToString());", codeGen.GetEmittedCode()); }
public void DoubleHighPrecision() { Double myNumber = 414.53936348408712d; AssertBuilder codeGen = new AssertBuilder(); GetAssertBuilderOutput(codeGen, myNumber); Assert.AreEqual("Assert.AreEqual(\"414.539363484087\", target.ToString());", codeGen.GetEmittedCode()); }
public void MultilineStringsEscaped() { string input = "this tests that the \r\n correct escape sequence is used over multiple lines. \"Here is a quoted message\" "; AssertBuilder codeGen = new AssertBuilder(); GetAssertBuilderOutput(codeGen, input); Assert.AreEqual(@"Assert.AreEqual(@""this tests that the correct escape sequence is used over multiple lines. """"Here is a quoted message"""" "", target);".NormaliseCrlf() , codeGen.GetEmittedCode().NormaliseCrlf()); }
public void Float() { AssertBuilder codeGen = new AssertBuilder(); GetAssertBuilderOutput(codeGen, 24.5f); Assert.AreEqual(@"Assert.AreEqual(24.5f, target);", codeGen.GetEmittedCode()); codeGen = new AssertBuilder(); GetAssertBuilderOutput(codeGen, Single.MinValue); Assert.AreEqual(@"Assert.AreEqual(-3.402823E+38f, target);", codeGen.GetEmittedCode()); }
public void Boolean() { Light light = new Light { IsOn = true, DimmerPosition = 100 }; AssertBuilder codeGen = new AssertBuilder(); GetAssertBuilderOutput(codeGen, light); Assert.AreEqual(@"Assert.AreEqual(true, target.IsOn); Assert.AreEqual(100, target.DimmerPosition);".NormaliseCrlf() , codeGen.GetEmittedCode().NormaliseCrlf()); }
public void DataRow() { ColourDataTable dataTable = new ColourDataTable(); DataRow dataRow = dataTable.Rows[0]; AssertBuilder codeGen = new AssertBuilder(); codeGen.Options.ExcludeProperties.Add("DateCreated"); GetAssertBuilderOutput(codeGen, dataRow); Assert.AreEqual(@"Assert.AreEqual(1, target[""Id""]); Assert.AreEqual(""Red"", target[""Name""]); Assert.AreEqual(""FF0000"", target[""Rgb""]);".NormaliseCrlf(), codeGen.GetEmittedCode().NormaliseCrlf()); }
public void FieldsEnumerated() { Animal cat = new Animal(); cat.LegCount = 3; cat.Sound = "meow"; AssertBuilder codeGen = new AssertBuilder(); GetAssertBuilderOutput(codeGen, cat); Assert.AreEqual(@"Assert.AreEqual(3, target.LegCount); Assert.AreEqual(""meow"", target.Sound);".NormaliseCrlf() , codeGen.GetEmittedCode().NormaliseCrlf()); }
public void Indexers() { Indexer indexer = new Indexer(); AssertBuilder codeGen = new AssertBuilder(); GetAssertBuilderOutput(codeGen, indexer); Assert.AreEqual(@"System.Collections.IEnumerator enumerator = target.GetEnumerator(); object enumeratorPointer = enumerator.Current; Assert.AreEqual(4, enumeratorPointer); enumeratorPointer = enumerator.MoveNext(); Assert.AreEqual(5, enumeratorPointer); enumeratorPointer = enumerator.MoveNext(); Assert.AreEqual(6, enumeratorPointer); enumeratorPointer = enumerator.MoveNext();".NormaliseCrlf(), codeGen.GetEmittedCode().NormaliseCrlf()); }
public void SyntacticalSugarListString() { Zoo zoo = new Zoo(); AssertBuilder codeGen = new AssertBuilder(); codeGen.Options.EnumerateAllProperties = false; codeGen.Options.IncludeProperties.Add("Animals", "Name", "Sound", "Count"); GetAssertBuilderOutput(codeGen, zoo); Assert.AreEqual(@"Assert.AreEqual(3, target.Animals.Count); Assert.AreEqual(null, target.Animals[0].Sound); Assert.AreEqual(null, target.Animals[1].Sound); Assert.AreEqual(null, target.Animals[2].Sound);".NormaliseCrlf(), codeGen.GetEmittedCode().NormaliseCrlf()); }
public void ListString() { List <string> strings = new List <string> { "Dog", "Cat", "Horse", "Bird" }; AssertBuilder codeGen = new AssertBuilder(); GetAssertBuilderOutput(codeGen, strings); Assert.AreEqual(@"Assert.AreEqual(4, target.Count); Assert.AreEqual(""Dog"", target[0]); Assert.AreEqual(""Cat"", target[1]); Assert.AreEqual(""Horse"", target[2]); Assert.AreEqual(""Bird"", target[3]);".NormaliseCrlf(), codeGen.GetEmittedCode().NormaliseCrlf()); }
public void ExplicitInclude() { Zoo zoo = new Zoo(); AnimalCollection animals = zoo.Animals; AssertBuilder codeGen = new AssertBuilder(); codeGen.Options.IncludeProperties.Add("LegCount"); codeGen.Options.EnumerateAllProperties = false; GetAssertBuilderOutput(codeGen, animals); Assert.AreEqual(@"Assert.AreEqual(3, target.Count); Assert.AreEqual(4, target[0].LegCount); Assert.AreEqual(2, target[1].LegCount); Assert.AreEqual(3, target[2].LegCount);".NormaliseCrlf(), codeGen.GetEmittedCode().NormaliseCrlf()); }
public void DataTableHonoursInclusiveProperties() { ColourDataTable dataTable = new ColourDataTable(); AssertBuilder codeGen = new AssertBuilder(); codeGen.Options.EnumerateAllProperties = false; codeGen.Options.IncludeProperties.Add("Name"); codeGen.Options.ExcludeProperties.Add("DateCreated"); GetAssertBuilderOutput(codeGen, dataTable); Assert.AreEqual(@"Assert.AreEqual(3, target.Rows.Count); Assert.AreEqual(""Red"", target.Rows[0][""Name""]); Assert.AreEqual(""Green"", target.Rows[1][""Name""]); Assert.AreEqual(""Blue"", target.Rows[2][""Name""]);".NormaliseCrlf(), codeGen.GetEmittedCode().NormaliseCrlf()); }
public virtual void Setup() { _isTestTempDirectoryCleaned = false; AssertBuilder = new AssertBuilder(); ObjectComparer = new ObjectComparer(); ContainerBuilder = new ContainerBuilder(); _isContainerBuilt = false; RegisterAutofacModules(); TestFrameworkFacade.AssertEqual = (o1, o2, s) => { Assert.AreEqual(o1, o2, s); }; if (EnableTransactionScope) { _transactionScope = new TransactionScope(); } }
public void ExcludeProperties() { AnimalCollection animals = new Zoo().Animals; AssertBuilder codeGen = new AssertBuilder(); CodeGenOptions options = GetDefaultOptions(); options.ExcludeProperties.Add("sound"); // test case insensitivity GetAssertBuilderOutput(codeGen, animals, options); Assert.AreEqual(@"Assert.AreEqual(3, target.Count); Assert.AreEqual(4, target[0].LegCount); Assert.AreEqual(2, target[1].LegCount); Assert.AreEqual(3, target[2].LegCount);".NormaliseCrlf(), codeGen.GetEmittedCode().NormaliseCrlf()); }
public TestBase() { AssertBuilder = new AssertBuilder(); ObjectComparer = new ObjectComparer(); AssertBuilder.Options.AssertSignatures.AreEqual = "Equal"; AssertBuilder.Options.AssertSignatures.IsNull = "Null"; AssertBuilder.AppendEmittedCodeToFailMessage = true; TestFrameworkFacade.AssertEqual = (o1, o2, m) => { if (o1 is string && o2 is string) { // get original messages through var o1AsString = o1 as string; var o2AsString = o2 as string; if (!o1AsString.Equals(o2AsString)) { Assert.False(true, m); } } else { Assert.Equal(o1, o2); } }; TestFrameworkFacade.AssertNotEqual = (o1, o2, m) => { Assert.NotEqual(o1, o2); }; TestFrameworkFacade.AssertFail = (mf, args) => { // Log.InfoFormat(mf, args); if (args.Length == 0) { Assert.False(true, mf); } else { Assert.False(true, string.Format(mf, args)); } }; }
public void DataTable() { ColourDataTable dataTable = new ColourDataTable(); AssertBuilder codeGen = new AssertBuilder(); GetAssertBuilderOutput(codeGen, dataTable); Assert.AreEqual(@"Assert.AreEqual(3, target.Rows.Count); Assert.AreEqual(1, target.Rows[0][""Id""]); Assert.AreEqual(""Red"", target.Rows[0][""Name""]); Assert.AreEqual(""FF0000"", target.Rows[0][""Rgb""]); Assert.AreEqual(Convert.ToDateTime(""29-Mar-2010 16:56:00.000""), target.Rows[0][""DateCreated""]); Assert.AreEqual(2, target.Rows[1][""Id""]); Assert.AreEqual(""Green"", target.Rows[1][""Name""]); Assert.AreEqual(""00FF00"", target.Rows[1][""Rgb""]); Assert.AreEqual(Convert.ToDateTime(""28-Mar-2010 16:56:00.000""), target.Rows[1][""DateCreated""]); Assert.AreEqual(3, target.Rows[2][""Id""]); Assert.AreEqual(""Blue"", target.Rows[2][""Name""]); Assert.AreEqual(""0000FF"", target.Rows[2][""Rgb""]); Assert.AreEqual(Convert.ToDateTime(""29-Mar-2010 16:56:00.500""), target.Rows[2][""DateCreated""]);".NormaliseCrlf(), codeGen.GetEmittedCode().NormaliseCrlf()); }
public void OrderLineList_MapsTo_DataTable() { OrderRepository repo = GetNewRepo(); List<OrderLine> lines = GetUnpersistedOrder().OrderLines; repo.MapToDataTable("OrderLineTableType", lines); AssertBuilder builder = new AssertBuilder(); //builder.Generate(lines, "lines"); // AssertBuilder.Generate(lines, "lines"); // The following assertions were generated on 24-Jan-2012 #region CodeGen Assertions Assert.AreEqual(2, lines.Count); Assert.AreEqual(0, lines[0].Id); Assert.AreEqual(0, lines[0].OrderId); Assert.AreEqual(1, lines[0].ProductId); Assert.AreEqual(0, lines[0].OrderQty); Assert.AreEqual(100, lines[0].UnitPriceCents); Assert.AreEqual(false, lines[0].IsActive); Assert.AreEqual(false, lines[0].IsDeleted); Assert.AreEqual(DateTime.MinValue, lines[0].DateCreated); Assert.AreEqual("Captain Hero", lines[0].CreatedBy); Assert.AreEqual(DateTime.MinValue, lines[0].DateModified); Assert.AreEqual("Wooldoor", lines[0].ModifiedBy); Assert.AreEqual(0, lines[1].Id); Assert.AreEqual(0, lines[1].OrderId); Assert.AreEqual(2, lines[1].ProductId); Assert.AreEqual(0, lines[1].OrderQty); Assert.AreEqual(89, lines[1].UnitPriceCents); Assert.AreEqual(false, lines[1].IsActive); Assert.AreEqual(false, lines[1].IsDeleted); Assert.AreEqual(DateTime.MinValue, lines[1].DateCreated); Assert.AreEqual("Toot", lines[1].CreatedBy); Assert.AreEqual(DateTime.MinValue, lines[1].DateModified); Assert.AreEqual("Xandir", lines[1].ModifiedBy); #endregion }