public async Task CanGetResultAsComplexObject() { using (var store = GetDocumentStore()) { var database = await GetDocumentDatabaseInstanceFor(store); var requestsMeter = database.Metrics.RequestsMeter; using (var session = store.OpenSession()) { for (var i = 0; i < 10; i++) { session.Store(new object()); } session.SaveChanges(); } var result = new AdminJsConsole(Server, database).ApplyScript(new AdminJsScript ( @" return database.Metrics.RequestsMeter " )); var resultAsMeterMetric = result as dynamic; Assert.NotNull(resultAsMeterMetric); Assert.Equal(requestsMeter.Count, resultAsMeterMetric.Count); Assert.Equal(requestsMeter.FifteenMinuteRate, resultAsMeterMetric.FifteenMinuteRate); Assert.Equal(requestsMeter.FiveMinuteRate, resultAsMeterMetric.FiveMinuteRate); Assert.Equal(requestsMeter.FiveSecondRate, resultAsMeterMetric.FiveSecondRate); Assert.Equal(requestsMeter.OneMinuteRate, resultAsMeterMetric.OneMinuteRate); Assert.Equal(requestsMeter.OneSecondRate, resultAsMeterMetric.OneSecondRate); } }
public bool CreateScript(TextReader reader, TextWriter writer, bool consoleColoring, DocumentDatabase database, RavenServer server) { var execString = database != null ? ExecutionStr : ServerExecutionStr; if (consoleColoring) { Console.ForegroundColor = ConsoleColor.Cyan; } writer.WriteLine(); writer.WriteLine("Enter JavaScript:"); if (consoleColoring) { Console.ForegroundColor = ConsoleColor.DarkCyan; } writer.WriteLine("(to cancel enter in new line 'cancel' or 'EXEC' to execute)"); writer.WriteLine(); var sb = new StringBuilder(); if (consoleColoring) { Console.ResetColor(); } AdminConsole = new AdminJsConsole(server, database); if (AdminConsole.Log.IsOperationsEnabled) { var from = consoleColoring ? "the console cli" : "a named pipe connection"; AdminConsole.Log.Operations($"This operation was initiated through {from}"); } while (true) { writer.Write(">>> "); if (consoleColoring == false) { writer.Write(RavenCli.GetDelimiterString(RavenCli.Delimiter.ReadLine)); } writer.Flush(); var line = reader.ReadLine(); if (line.Equals("cancel")) { return(false); } if (line.Equals("EXEC")) { break; } sb.Append(line); } Script = sb.ToString(); return(true); }
private JToken ExecuteScript(DocumentDatabase database, string script) { var result = new AdminJsConsole(Server, database).ApplyScript(new AdminJsScript ( script )); Assert.NotNull(result); var token = JsonConvert.DeserializeObject <JObject>(result).GetValue("Result"); Assert.NotNull(token); return(token); }
public void CanGetServerSettings() { var result = new AdminJsConsole(Server, null).ApplyScript(new AdminJsScript (@" return { AllowScriptsToAdjustNumberOfSteps: server.Configuration.Patching.AllowScriptsToAdjustNumberOfSteps, MaxConcurrentFlushes: server.Configuration.Storage.MaxConcurrentFlushes };" )); var djv = result as dynamic; Assert.NotNull(djv); Assert.Equal(false, djv["AllowScriptsToAdjustNumberOfSteps"]); Assert.Equal(10L, djv["MaxConcurrentFlushes"]); }
public async Task <HttpResponseMessage> Console(string id) { var database = await DatabasesLandlord.GetResourceInternal(id).ConfigureAwait(false); var script = await ReadJsonObjectAsync <AdminJsScript>().ConfigureAwait(false); var console = new AdminJsConsole(database); var result = console.ApplyScript(script); if (result.Type == JTokenType.Null) { result = new RavenJValue("OK"); } return(GetMessageWithObject(result)); }
public async Task CanGetResultAsDateObject() { using (var store = GetDocumentStore()) { var database = await GetDocumentDatabaseInstanceFor(store); var startTime = database.StartTime; var result = new AdminJsConsole(Server, database).ApplyScript(new AdminJsScript (@" return database.StartTime; " )); Assert.NotNull(result); Assert.Equal(startTime.ToInvariantString(), result.ToInvariantString()); } }
public async Task CanGetResultAsPrimitiveObject() { using (var store = GetDocumentStore()) { var database = await GetDocumentDatabaseInstanceFor(store); var maxConcurrentFlushes = (long)database.Configuration.Storage.MaxConcurrentFlushes; var result = new AdminJsConsole(Server, database).ApplyScript(new AdminJsScript (@" return database.Configuration.Storage.MaxConcurrentFlushes " )); Assert.NotNull(result); Assert.IsType <long>(result); Assert.Equal(maxConcurrentFlushes, long.Parse(result)); var allowScriptsToAdjustNumberOfSteps = database.Configuration.Indexing.MapTimeout; var result2 = new AdminJsConsole(Server, database).ApplyScript(new AdminJsScript (@" return database.Configuration.Indexing.MapTimeout " )); Assert.NotNull(result2); Assert.IsType <TimeSetting>(result2); Assert.Same(allowScriptsToAdjustNumberOfSteps, result2); var serverUrl = database.Configuration.Core.ServerUrl; var result3 = new AdminJsConsole(Server, database).ApplyScript(new AdminJsScript (@" return database.Configuration.Core.ServerUrl " )); Assert.NotNull(result3); Assert.IsType <string>(result3); Assert.Equal(serverUrl, result3); } }
public async Task CanGetSettings() { using (var store = GetDocumentStore()) { var database = await GetDocumentDatabaseInstanceFor(store); var result = new AdminJsConsole(Server, database).ApplyScript(new AdminJsScript ( @" return { DatabaseName: database.Name, RunInMemory: database.Configuration.Core.RunInMemory, MaxConcurrentFlushes: database.Configuration.Storage.MaxConcurrentFlushes }; " )); var djv = JsonConvert.DeserializeObject <dynamic>(result).Result; Assert.NotNull(djv); Assert.Equal(database.Name, djv["DatabaseName"]); Assert.Equal(true, djv["RunInMemory"]); Assert.Equal(10L, djv["MaxConcurrentFlushes"]); } }
public void CanReturnNullResult() { var result = new AdminJsConsole(Server, null).ApplyScript(new AdminJsScript(@"return null")); Assert.Null(result); }