private string ExecuteClientSide(string testName, string templateFile, string dataFile) { var namingRule = new NamingRule(); var handlerFactory = new NullRenderingHelperHandlerFactory(); var clientGenerator = new ClientTemplateGenerator(handlerFactory, new MemberLocatorFromNamingRule(namingRule)); var generator = new JavascriptClientTemplateGenerator("repo", clientGenerator); var templateInfo = new FileTemplateInfo(testName, PathInfo.Create(templateFile), new FileSystem()); var view = generator.Generate(templateInfo); Dictionary<string, object> model; using (var reader = new StreamReader(dataFile)) { model = (Dictionary<string, object>) new JavaScriptSerializer().Deserialize(reader.ReadToEnd(), typeof(Dictionary<string, object>)); } CleanupModel(model); var result = JavascriptClientTest.ExecuteJavascript(view, model, testName); return result; }
private async Task<string> ExecuteServerSide(string testName, string templateFile, string dataFile) { var cacheProvider = new NullCacheProvider(); var namingRule = new NamingRule(); var handlerFactory = new NullRenderingHelperHandlerFactory(); var templateInfo = new FileTemplateInfo(testName, PathInfo.Create(templateFile), new FileSystem()); var viewEngine = new VeilViewEngine(cacheProvider, handlerFactory, namingRule); IView view = await viewEngine.CreateViewAsync(templateInfo).ConfigureAwait(false); if (view == null) Assert.True(false, string.Format("Could not create view from file'{0}'.", templateFile)); object model; using (var reader = new StreamReader(dataFile)) { model = new JsonSerializer().Deserialize(reader, typeof(Dictionary<string, object>)); } var builder = new StringBuilder(); using (var writer = new StringWriterDelayed(builder)) { view.Render(model, new RenderingContext(writer)); } var resultString = builder.ToString(); return resultString; }
private async Task<string> ExecuteServerSideStrongModel(string testName, string templateFile, string dataFile) { var cacheProvider = new NullCacheProvider(); var namingRule = new NamingRule(); var handlerFactory = new NullRenderingHelperHandlerFactory(); var templateInfo = new FileTemplateInfo(testName, PathInfo.Create(templateFile), new FileSystem()); var schemaProvider = new HandlebarsViewSchemaProvider(handlerFactory, new MemberLocatorFromNamingRule(namingRule)); var generator = new JsonSchemaCodeGenerator(namingRule); var schema = await schemaProvider.GetSchemaFromTemplateAsync(templateInfo).ConfigureAwait(false); schema.Title = "Model"; var modelType = generator.Compile(schema); var viewEngine = new VeilViewEngine(cacheProvider, handlerFactory, namingRule); var view = await viewEngine.CreateViewAsync(templateInfo, modelType, StaticModelBinder.Create(modelType)).ConfigureAwait(false); if (view == null) Assert.True(false, string.Format("Could not create view from file '{0}'.", templateFile)); object model; using (var reader = new JsonTextReader(new StreamReader(dataFile))) { model = JsonSerializer.Create().Deserialize(reader, modelType); } var builder = new StringBuilder(); using (var writer = new StringWriterDelayed(builder)) { view.Render(model, new RenderingContext(writer)); } var resultString = builder.ToString(); return resultString; }