public SelectableTagViewModel(TagSuggestion tagSuggestion, bool selected) { Id = tagSuggestion.TagId; Name = tagSuggestion.Name; Workspace = tagSuggestion.WorkspaceName; Selected = selected; }
public async Task ReturnsFalseIfTagIsCreated() { InteractorFactory .GetTagsAutocompleteSuggestions(Arg.Any <IList <string> >()) .Execute() .Returns(Observable.Return(new List <AutocompleteSuggestion>())); var newTag = Substitute.For <IThreadSafeTag>(); newTag.Id.Returns(12345); newTag.WorkspaceId.Returns(workspaceId); newTag.Name.Returns("new tag"); ViewModel.Prepare((new long[] { }, workspaceId)); var observer = TestScheduler.CreateObserver <bool>(); await ViewModel.Initialize(); ViewModel.IsEmpty.Subscribe(observer); InteractorFactory .GetTagsAutocompleteSuggestions(Arg.Any <IList <string> >()) .Execute() .Returns(Observable.Return(TagSuggestion.FromTags(new List <IThreadSafeTag> { newTag }))); ViewModel.FilterText.OnNext(string.Empty); TestScheduler.Start(); observer.LastEmittedValue().Should().BeFalse(); }
public void PrependsTheNewTagToTheTagList() { var tagName = "Some Tag"; long workspaceId = 123; var initialTags = CreateTags(count: 10); InteractorFactory .GetTagsAutocompleteSuggestions(Arg.Any <IList <string> >()) .Execute() .Returns(Observable.Return(initialTags)); var createdTag = CreateTagSubstitute(0, tagName); createdTag.WorkspaceId.Returns(workspaceId); DataSource.Tags.Create(Arg.Is(tagName), Arg.Any <long>()) .Returns(Observable.Return(createdTag)); ViewModel.Prepare((new long[0], workspaceId)); ViewModel.Initialize().Wait(); //Reconfigure AutocopleteProvider, so it returns the created tag as well var createdTagSuggestion = new TagSuggestion(createdTag); var newTagSuggestions = initialTags .Concat(new AutocompleteSuggestion[] { createdTagSuggestion }); var observable = Observable .Return(newTagSuggestions); InteractorFactory .GetTagsAutocompleteSuggestions(Arg.Any <IList <string> >()) .Execute() .Returns(observable); ViewModel.Text = tagName; ViewModel.CreateTagCommand.ExecuteAsync(tagName).Wait(); ViewModel.Tags.First().Name.Should().Be(tagName); }
public TextFieldInfo RemoveTag(TagSuggestion tag) { var newTags = Tags.ToList(); newTags.Remove(tag); return(new TextFieldInfo( Text, CursorPosition, WorkspaceId, ProjectId, ProjectName, ProjectColor, TaskId, TaskName, newTags.ToArray())); }
public TheSelectTagAction() { var databaseTag = Substitute.For <IThreadSafeTag>(); databaseTag.Name.Returns("Tag0"); databaseTag.Id.Returns(0); tagSuggestion = new TagSuggestion(databaseTag); }
public static TextFieldInfo FromTagSuggestion( this TextFieldInfo textFieldInfo, TagSuggestion tagSuggestion) { var result = textFieldInfo.AddTag(tagSuggestion.TagId, tagSuggestion.Name); return(result); }
public TheSelectTagCommand() { var databaseTag = Substitute.For <IDatabaseTag>(); databaseTag.Name.Returns("Tag0"); databaseTag.Id.Returns(0); tagSuggestion = new TagSuggestion(databaseTag); }
private async Task createTag() { var createdTag = await dataSource.Tags .Create(CurrentQuery.Trim(), TextFieldInfo.WorkspaceId.Value); var tagSuggestion = new TagSuggestion(createdTag); await SelectSuggestionCommand.ExecuteAsync(tagSuggestion); }
public TextFieldInfo AddTag(TagSuggestion tagSuggestion) { var tags = new List <TagSuggestion>(Tags) { tagSuggestion }.ToArray(); return(new TextFieldInfo( Text, CursorPosition, WorkspaceId, ProjectId, ProjectName, ProjectColor, TaskId, TaskName, tags)); }
private async Task createTag() { var createdTag = await interactorFactory.CreateTag(currentQuery, textFieldInfo.Value.WorkspaceId).Execute(); var tagSuggestion = new TagSuggestion(createdTag); await SelectSuggestion.ExecuteWithCompletion(tagSuggestion); hasAnyTags = true; toggleTagSuggestions(); }
public TheToggleTagSuggestionsCommand() { var tag = Substitute.For <IDatabaseTag>(); tag.Id.Returns(TagId); tag.Name.Returns(TagName); var suggestions = TagSuggestion.FromTags(new[] { tag }); AutocompleteProvider .Query(Arg.Is <TextFieldInfo>(info => info.Text.Contains("#"))) .Returns(Observable.Return(suggestions)); }
public TextFieldInfo AddTag(TagSuggestion tagSuggestion) { if (Tags.Any(t => t.TagId == tagSuggestion.TagId)) { return(this); } var tags = new List <TagSuggestion>(Tags) { tagSuggestion }.ToArray(); return(new TextFieldInfo( Text, CursorPosition, WorkspaceId, ProjectId, ProjectName, ProjectColor, TaskId, TaskName, tags)); }
private void setup(Func <long, long> workspaceIdSelector) { var tags = Enumerable.Range(0, 10) .Select(i => { var tag = Substitute.For <IThreadSafeTag>(); tag.Name.Returns(Guid.NewGuid().ToString()); tag.Id.Returns(i); tag.WorkspaceId.Returns(workspaceIdSelector(i)); return(tag); }) .ToList(); InteractorFactory .GetTagsAutocompleteSuggestions(Arg.Any <IList <string> >()) .Execute() .Returns(Observable.Return(TagSuggestion.FromTags(tags))); }
private SelectableTagBaseViewModel toSelectableTagViewModel(TagSuggestion tagSuggestion) => new SelectableTagViewModel( tagSuggestion.TagId, tagSuggestion.Name, selectedTagIds.Contains(tagSuggestion.TagId), workspaceId);