public MockHttpClientFactory() { _studentServiceHttpClient = new Lazy <HttpClient>(() => { var dg = new DG( new StudentGeneratorFactory(), new DataSchemeMapperConfig { UseCamelCase = true }); //Creates DataScheme based on DgStudentCollection attributes. DataScheme scheme = dg.GetFromType <DgStudentCollection>(); //Generates json random data. string jsonData = dg.GenerateJson(scheme); var handlerMock = new Mock <HttpMessageHandler>(MockBehavior.Strict); handlerMock.Protected() .Setup <Task <HttpResponseMessage> >( "SendAsync", ItExpr.IsAny <HttpRequestMessage>(), ItExpr.IsAny <CancellationToken>() ) .ReturnsAsync(new HttpResponseMessage { StatusCode = HttpStatusCode.OK, //Responds with the generated data. Content = new StringContent(jsonData) }) .Verifiable(); return(new HttpClient(handlerMock.Object)); }); }
public string GenerateJson(DataScheme scheme) { var dataProcessor = new DataProcessor(scheme, _generatorFactory); var data = dataProcessor.CreateData(); return(JsonValueObjectSerializer.Serialize(data)); }
public DataProcessor(DataScheme scheme, IGeneratorFactory generatorFactory) { scheme.ThrowIfNull(nameof(scheme)); scheme.Root.ThrowIfNull(nameof(scheme.Root)); scheme.Definitions.ThrowIfNullOrEmpty(nameof(scheme.Definitions)); _scheme = scheme; _generatorFactory = generatorFactory ?? throw new ArgumentNullException(nameof(generatorFactory)); _propertyObjectFactory = new PropertyObjectFactory(); _randomFactory = new RandomFactory(); }
void LoadScheme() { Console.WriteLine("Loading tables"); OracleCommand cmd = QuerryBuilder.Select("TABLE_NAME, COLUMN_NAME, DATA_TYPE", "USER_TAB_COLUMNS"); OracleDataReader reader = cmd.ExecuteReader(); reader.Read(); string tableName = reader.GetString(0); Table temp = new Table(); do { if (tableName != reader.GetString(0)) { if (temp.Columns.Count > 0) { temp.Columns.Reverse(); temp.Name = tableName; DataScheme.Add(tableName, temp); } temp = new Table(); tableName = reader.GetString(0); temp.Columns.Add(new DataTypes.Varchar { Name = reader.GetString(1), Value = reader.GetString(2) }); temp.Name = tableName; } else { temp.Columns.Add(new DataTypes.Varchar { Name = reader.GetString(1), Value = reader.GetString(2) }); } } while (reader.Read()); temp.Columns.Reverse(); DataScheme.Add(tableName, temp); reader.Close(); }