Created
November 14, 2019 06:38
-
-
Save skclusive/09fa4f19c2d9d53c4cba2b4ac9588ce2 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using Xunit; | |
namespace ClientSide.Models | |
{ | |
public class TestTodoStore | |
{ | |
[Fact] | |
public void TestStore() | |
{ | |
var store = ModelTypes.StoreType.Create(new TodoStoreSnapshot | |
{ | |
Filter = "ShowAll", | |
Todos = new ITodoSnapshot[] | |
{ | |
new TodoSnapshot { Title = "Get coffee" } | |
} | |
}); | |
Assert.NotNull(store); | |
Assert.Equal("ShowAll", store.Filter); | |
Assert.Equal("Get coffee", store.Todos[0].Title); | |
store.Todos[0].Edit("Get Filter Coffee"); | |
Assert.Equal("Get Filter Coffee", store.Todos[0].Title); | |
store.Todos[0].Toggle(); | |
Assert.True(store.Todos[0].Done); | |
store.Todos[0].Remove(); | |
Assert.Empty(store.Todos); | |
Assert.Equal(0, store.TotalCount); | |
} | |
[Fact] | |
public void TestTodoCounts() | |
{ | |
var store = ModelTypes.StoreType.Create(new TodoStoreSnapshot | |
{ | |
Filter = "ShowAll", | |
Todos = new ITodoSnapshot[] | |
{ | |
new TodoSnapshot { Title = "Get coffee", Done = true }, | |
new TodoSnapshot { Title = "Learn Blazor" } | |
} | |
}); | |
Assert.Equal(2, store.FilteredTodos.Count); | |
Assert.Equal(2, store.TotalCount); | |
Assert.Equal(1, store.ActiveCount); | |
Assert.Equal(1, store.CompletedCount); | |
store.Todos[1].Toggle(); | |
Assert.Equal(2, store.FilteredTodos.Count); | |
store.SetFilter("ShowActive"); | |
Assert.Equal("ShowActive", store.Filter); | |
Assert.Equal(0, store.FilteredTodos.Count); | |
store.SetFilter("ShowCompleted"); | |
Assert.Equal("ShowCompleted", store.Filter); | |
Assert.Equal(2, store.FilteredTodos.Count); | |
Assert.Equal(0, store.ActiveCount); | |
Assert.Equal(2, store.CompletedCount); | |
} | |
[Fact] | |
public void TestTodoCompleteAll() | |
{ | |
var store = ModelTypes.StoreType.Create(new TodoStoreSnapshot | |
{ | |
Filter = "ShowAll", | |
Todos = new ITodoSnapshot[] | |
{ | |
new TodoSnapshot { Title = "Get coffee" }, | |
new TodoSnapshot { Title = "Learn Blazor" } | |
} | |
}); | |
Assert.Equal(2, store.FilteredTodos.Count); | |
Assert.Equal(2, store.ActiveCount); | |
Assert.Equal(0, store.CompletedCount); | |
store.CompleteAll(); | |
store.SetFilter("ShowCompleted"); | |
Assert.Equal("ShowCompleted", store.Filter); | |
Assert.Equal(2, store.FilteredTodos.Count); | |
Assert.Equal(0, store.ActiveCount); | |
Assert.Equal(2, store.CompletedCount); | |
} | |
[Fact] | |
public void TestTodoClearCompleted() | |
{ | |
var store = ModelTypes.StoreType.Create(new TodoStoreSnapshot | |
{ | |
Filter = "ShowAll", | |
Todos = new ITodoSnapshot[] | |
{ | |
new TodoSnapshot { Title = "Get coffee" }, | |
new TodoSnapshot { Title = "Learn Blazor" } | |
} | |
}); | |
Assert.Equal(2, store.FilteredTodos.Count); | |
Assert.Equal(2, store.ActiveCount); | |
Assert.Equal(0, store.CompletedCount); | |
store.Todos[0].Toggle(); | |
Assert.Equal(1, store.ActiveCount); | |
Assert.Equal(1, store.CompletedCount); | |
store.ClearCompleted(); | |
Assert.Equal(1, store.FilteredTodos.Count); | |
Assert.Equal(1, store.ActiveCount); | |
Assert.Equal(0, store.CompletedCount); | |
Assert.Equal("Learn Blazor", store.Todos[0].Title); | |
} | |
[Fact] | |
public void TestAddTodo() | |
{ | |
var store = ModelTypes.StoreType.Create(new TodoStoreSnapshot | |
{ | |
Filter = "ShowAll", | |
Todos = new ITodoSnapshot[] | |
{ | |
new TodoSnapshot { Title = "Get coffee" } | |
} | |
}); | |
Assert.Equal(1, store.TotalCount); | |
store.AddTodo("Learn Blazor"); | |
Assert.Equal(2, store.TotalCount); | |
Assert.Equal("Learn Blazor", store.Todos[0].Title); | |
Assert.Equal("Get coffee", store.Todos[1].Title); | |
} | |
[Fact] | |
public void TestEditTodo() | |
{ | |
var store = ModelTypes.StoreType.Create(new TodoStoreSnapshot | |
{ | |
Filter = "ShowAll", | |
Todos = new ITodoSnapshot[] | |
{ | |
new TodoSnapshot { Title = "Get coffee" } | |
} | |
}); | |
Assert.Equal("Get coffee", store.Todos[0].Title); | |
store.Todos[0].Edit("Learn Blazor"); | |
Assert.Equal(1, store.TotalCount); | |
Assert.Equal("Learn Blazor", store.Todos[0].Title); | |
store.Todos[0].Edit("Learn Blazor"); | |
Assert.Equal("Learn Blazor", store.Todos[0].Title); | |
} | |
[Fact] | |
public void TestNoEditTodo() | |
{ | |
var store = ModelTypes.StoreType.Create(new TodoStoreSnapshot | |
{ | |
Filter = "ShowAll", | |
Todos = new ITodoSnapshot[] | |
{ | |
new TodoSnapshot { Title = "Get coffee" } | |
} | |
}); | |
Assert.Equal("Get coffee", store.Todos[0].Title); | |
store.Todos[0].Edit("Learn Blazor"); | |
store.Todos[0].Edit("Learn Blazor"); | |
Assert.Equal("Learn Blazor", store.Todos[0].Title); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment