public void SqlParams_Should_Match_For_SaveRecord() { var mockClient = new Mock <IModularDbClient>(); var connStr = new DbConnectionStringBuilder(); var input = new TModel(new { Id = 1 }); var output = new TModel(new { Id = 1 }); mockClient.Setup(m => m.GetConnectionBuilder(It.IsAny <string>())).Returns(connStr); mockClient.Setup(m => m.GetRecordObject <TModel>(It.IsAny <object>(), It.IsAny <string>(), It.IsAny <IRepositoryMethodDefinition>())).Returns(output); TRepo sut = new TRepo(mockClient.Object, ""); var o = sut.SaveRecord(input); mockClient.Verify(m => m.GetConnectionBuilder(It.IsAny <string>())); mockClient.Verify(m => m.GetRecordObject <TModel>(It.IsAny <object>(), It.IsAny <string>(), It.Is <IRepositoryMethodDefinition>(def => def.Parameters.Any(param => param.ParameterName == "@id")))); mockClient.Verify(m => m.GetRecordObject <TModel>(It.IsAny <object>(), It.IsAny <string>(), It.Is <IRepositoryMethodDefinition>(def => def.Parameters.Any(param => param.ParameterName == "@groupfilter")))); mockClient.Verify(m => m.GetRecordObject <TModel>(It.IsAny <object>(), It.IsAny <string>(), It.Is <IRepositoryMethodDefinition>(def => def.Parameters.Any(param => param.ParameterName == "@groupkey")))); mockClient.Verify(m => m.GetRecordObject <TModel>(It.IsAny <object>(), It.IsAny <string>(), It.Is <IRepositoryMethodDefinition>(def => def.Parameters.Any(param => param.ParameterName == "@fieldkey")))); mockClient.Verify(m => m.GetRecordObject <TModel>(It.IsAny <object>(), It.IsAny <string>(), It.Is <IRepositoryMethodDefinition>(def => def.Parameters.Any(param => param.ParameterName == "@fieldtype")))); mockClient.Verify(m => m.GetRecordObject <TModel>(It.IsAny <object>(), It.IsAny <string>(), It.Is <IRepositoryMethodDefinition>(def => def.Parameters.Any(param => param.ParameterName == "@fielddata")))); mockClient.Verify(m => m.GetRecordObject <TModel>(It.IsAny <object>(), It.IsAny <string>(), It.Is <IRepositoryMethodDefinition>(def => def.Parameters.Any(param => param.ParameterName == "@fieldclass")))); mockClient.Verify(m => m.GetRecordObject <TModel>(It.IsAny <object>(), It.IsAny <string>(), It.Is <IRepositoryMethodDefinition>(def => def.Parameters.Any(param => param.ParameterName == "@parentkey")))); mockClient.Verify(m => m.GetRecordObject <TModel>(It.IsAny <object>(), It.IsAny <string>(), It.Is <IRepositoryMethodDefinition>(def => def.Parameters.Any(param => param.ParameterName == "@defaultlabel")))); mockClient.Verify(m => m.GetRecordObject <TModel>(It.IsAny <object>(), It.IsAny <string>(), It.Is <IRepositoryMethodDefinition>(def => def.Parameters.Any(param => param.ParameterName == "@wrapperclass")))); mockClient.Verify(m => m.GetRecordObject <TModel>(It.IsAny <object>(), It.IsAny <string>(), It.Is <IRepositoryMethodDefinition>(def => def.Parameters.Any(param => param.ParameterName == "@wrapperhtmlstart")))); mockClient.Verify(m => m.GetRecordObject <TModel>(It.IsAny <object>(), It.IsAny <string>(), It.Is <IRepositoryMethodDefinition>(def => def.Parameters.Any(param => param.ParameterName == "@wrapperhtmlend")))); mockClient.Verify(m => m.GetRecordObject <TModel>(It.IsAny <object>(), It.IsAny <string>(), It.Is <IRepositoryMethodDefinition>(def => def.Parameters.Any(param => param.ParameterName == "@order")))); mockClient.Verify(m => m.GetRecordObject <TModel>(It.IsAny <object>(), It.IsAny <string>(), It.Is <IRepositoryMethodDefinition>(def => def.Parameters.Any(param => param.ParameterName == "@auditchangeby")))); mockClient.Verify(m => m.GetRecordObject <TModel>(It.IsAny <object>(), It.IsAny <string>(), It.Is <IRepositoryMethodDefinition>(def => def.Parameters.Count() == 14))); mockClient.VerifyNoOtherCalls(); }
public void SqlParams_Should_Throw_NotImplementedException_For_InsertRecord() { var mockClient = new Mock <IModularDbClient>(); var connStr = new DbConnectionStringBuilder(); var input = new TModel(new { Id = 1 }); var output = new TModel(new { Id = 1 }); mockClient.Setup(m => m.GetConnectionBuilder(It.IsAny <string>())).Returns(connStr); mockClient.Setup(m => m.GetRecordObject <TModel>(It.IsAny <object>(), It.IsAny <string>(), It.IsAny <IRepositoryMethodDefinition>())).Returns(output); TRepo sut = new TRepo(mockClient.Object, ""); Assert.ThrowsException <NotImplementedException>(() => sut.InsertRecord(input)); }