public async Task Execute_ReturnsIdOnSuccess() { var repo = new Mock <IListRepository>(); var id = Guid.NewGuid().ToString(); var command = new CreateListCommand { Name = "test" }; var handler = new CreateListCommandHandler(repo.Object); repo.Setup(r => r.Create(It.IsAny <List>())).ReturnsAsync(id); var result = await handler.Execute(command); Assert.AreEqual(id, result); }
public void RejectsIncorrectValue() { _engine = new AutomationEngineInstance(null); _createList = new CreateListCommand(); int item1 = 1; bool item2 = false; VariableMethods.CreateTestVariable(item1, _engine, "item1", typeof(int)); VariableMethods.CreateTestVariable(item2, _engine, "item2", typeof(bool)); VariableMethods.CreateTestVariable(null, _engine, "output", typeof(List <>)); _createList.v_ListType = "DataTable"; _createList.v_ListItems = "{item1},{item2}"; _createList.v_OutputUserVariableName = "{output}"; Assert.Throws <System.ArgumentException>(() => _createList.RunCommand(_engine)); }
public void CreatesList(string listType) { _engine = new AutomationEngineInstance(null); _createList = new CreateListCommand(); VariableMethods.CreateTestVariable(null, _engine, "output", typeof(List <>)); _createList.v_ListType = listType; _createList.v_OutputUserVariableName = "{output}"; _createList.RunCommand(_engine); dynamic expectedList = new List <string>(); switch (listType) { case "String": expectedList = new List <string>(); break; case "DataTable": expectedList = new List <OBDataTable>(); break; case "MailItem (Outlook)": expectedList = new List <MailItem>(); break; case "MimeMessage (IMAP/SMTP)": expectedList = new List <MimeMessage>(); break; case "IWebElement": expectedList = new List <IWebElement>(); break; default: break; } output.WriteLine("{output}".ConvertUserVariableToObject(_engine, typeof(List <>)).GetType().ToString()); output.WriteLine(expectedList.GetType().ToString()); Assert.True(Object.ReferenceEquals("{output}".ConvertUserVariableToObject(_engine, typeof(List <>)).GetType(), expectedList.GetType())); }
public static async Task <IActionResult> Run( [HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = "lists")] ListDTO list) { try { var command = new CreateListCommand { Name = list.Name }; var handler = Container.GetInstance <ICommandHander <CreateListCommand, string> >(); var id = await handler.Execute(command); var uri = new Uri(string.Format(Environment.GetEnvironmentVariable("LIST_RESOURCE_URI"), id)); return(new CreatedResult(uri, null)); } catch (Exception ex) { Container.GetInstance <TelemetryClient>().TrackException(ex); return(new InternalServerErrorResult()); } }
public ListsModule(Framework framework, IDocumentStore documentStore, CreateListCommand createListCommand) : base("/lists") { _createListCommand = createListCommand; _documentStore = documentStore; _framework = framework; Put["/upload-list"] = api => { var model = this.Bind<ServiceEndpoints.Lists.UploadContacts>(); var file = Request.Files.FirstOrDefault(); if (file == null) throw new ArgumentNullException("no files was provided"); var path = Guid.NewGuid().ToString(); using (var diskFile = File.OpenWrite(path)) { file.Value.CopyTo(diskFile); } var importContactsFromCsvTask = new ImportContactsFromCsvTask { File = path, ListId = model.ListId }; _framework.ExecuteTask(importContactsFromCsvTask); return importContactsFromCsvTask.Id; }; Get["/"] = api => { using (var session = _documentStore.OpenSession()) { return Response.AsJson(session.Query<ListDescriptor>().ToList()); } }; Get["/stats"] = api => { using (var session = _documentStore.OpenSession()) { var lists = session.Query<ListDescriptor>().ToList(); var listStats = lists.Select(listDescriptor => new { TotalContacts = session.Query<Contact>().Count(x => x.MemberOf.Any(p => p == listDescriptor.Id)), listDescriptor.Id, listDescriptor.Name }).ToList(); return Response.AsJson(listStats); } }; Post["/"] = api => { var model = this.Bind<ServiceEndpoints.Lists.CreateList>(); _createListCommand.Name = model.Name; var listId = _framework.ExecuteCommand(_createListCommand); return Response.AsJson(new ApiStringResult { Result = listId }); }; }