public async Task TestExtractCommandsByAttribute() { var commands = CommandTreeBuilder.ExtractCommandsFromClass <CommandFake>().ToArray(); var patterns = commands.Select(c => c.pattern).ToArray(); Assert.Contains("1", patterns); Assert.Contains("2", patterns); Assert.Contains("3", patterns); Assert.Contains("4", patterns); Assert.Contains("5", patterns); var testInstance = new CommandFake(); foreach (var(pattern, metadata) in commands) { Assert.NotNull(metadata.DelegateGetter); var action = metadata.DelegateGetter(testInstance); Assert.NotNull(action); await action(null); } Assert.True(testInstance.EAsyncWithArg); Assert.True(testInstance.EAsyncWithoutArg); Assert.True(testInstance.ESyncWithArg); Assert.True(testInstance.ESyncWithoutArg); Assert.True(testInstance.EMenuItem); }
public void CallCommandsTranslateInputMethod_WhenObjecctIsConstructed() { // arrange and act string input = "HirePilot John"; var command = new CommandFake(input); // assert Assert.IsTrue(command.IsTranslateInputCalled); }
public void ExtractParameter_ShouldAddEqualParametersThanDataRowColumns() { //ARRANGE var dictionary = new Dictionary <string, object>(); dictionary["testColumn1"] = "testValue1"; dictionary["testColumn2"] = 2; var dataObjectFactory = A.Fake <IDataObjectFactory>(); ConfigurationFake.CallsTo(x => x.DataObjectFactory) .Returns(dataObjectFactory); var dataParameterCollectionFake = A.Fake <IDataParameterCollection>(); CommandFake.CallsTo(x => x.Parameters) .Returns(dataParameterCollectionFake); var context = CreateContext(dictionary); SqlPrimitiveDataTypesFake.CallsTo(x => x.IsSqlPrimitiveType(A <Type> ._)) .Returns(true); //ACT _parameterExtractor.ExtractParameter(context); //ASSERT dataParameterCollectionFake.CallsTo( x => x.Add(A <IDbDataParameter> .That.Matches( parameter => parameter.ParameterName == "testColumn1" && (string)parameter.Value == "testValue1"))) .MustHaveHappened(Repeated.Exactly.Once); dataParameterCollectionFake.CallsTo( x => x.Add(A <IDbDataParameter> .That.Matches( parameter => parameter.ParameterName == "testColumn2" && (int)parameter.Value == 2))) .MustHaveHappened(Repeated.Exactly.Once); dataObjectFactory.CallsTo(x => x.CreateDataParameter()) .MustHaveHappened(Repeated.Exactly.Twice); }
public void ExtractParameter_ShouldAddEqualParametersThanObjectProperties() { //ARRANGE const string firstItem = "test1"; const int secondItem = 2; var obj = new Tuple <string, int>(firstItem, secondItem); var context = CreateContext(obj); var dataObjectFactory = A.Fake <IDataObjectFactory>(); ConfigurationFake.CallsTo(x => x.DataObjectFactory) .Returns(dataObjectFactory); var dataParameterCollectionFake = A.Fake <IDataParameterCollection>(); CommandFake.CallsTo(x => x.Parameters) .Returns(dataParameterCollectionFake); SqlPrimitiveDataTypesFake.CallsTo(x => x.IsSqlPrimitiveType(A <Type> ._)) .Returns(true); //ACT _parameterExtractor.ExtractParameter(context); //ASSERT dataParameterCollectionFake.CallsTo( x => x.Add(A <IDbDataParameter> .That.Matches( parameter => parameter.ParameterName == "Item1" && (string)parameter.Value == firstItem))) .MustHaveHappened(Repeated.Exactly.Once); dataParameterCollectionFake.CallsTo( x => x.Add(A <IDbDataParameter> .That.Matches( parameter => parameter.ParameterName == "Item2" && (int)parameter.Value == secondItem))) .MustHaveHappened(Repeated.Exactly.Once); dataObjectFactory.CallsTo(x => x.CreateDataParameter()) .MustHaveHappened(Repeated.Exactly.Twice); }
public void ExtractParameter_ShouldAddEqualParametersThanDataRowColumns() { //ARRANGE var dataTable = new DataTable(); dataTable.Columns.Add("testColumn1", typeof(string)); dataTable.Columns.Add("testColumn2", typeof(int)); dataTable.Rows.Add("testValue1", 2); var dataObjectFactory = A.Fake <IDataObjectFactory>(); ConfigurationFake.CallsTo(x => x.DataObjectFactory) .Returns(dataObjectFactory); var dataParameterCollectionFake = A.Fake <IDataParameterCollection>(); CommandFake.CallsTo(x => x.Parameters) .Returns(dataParameterCollectionFake); var context = CreateContext(dataTable); //ACT _parameterExtractor.ExtractParameter(context); //ASSERT dataParameterCollectionFake.CallsTo( x => x.Add(A <IDbDataParameter> .That.Matches( parameter => parameter.ParameterName == "testColumn1" && (string)parameter.Value == "testValue1"))) .MustHaveHappened(Repeated.Exactly.Once); dataParameterCollectionFake.CallsTo( x => x.Add(A <IDbDataParameter> .That.Matches( parameter => parameter.ParameterName == "testColumn2" && (int)parameter.Value == 2))) .MustHaveHappened(Repeated.Exactly.Once); dataObjectFactory.CallsTo(x => x.CreateDataParameter()) .MustHaveHappened(Repeated.Exactly.Twice); }