public void Test1() { List <Book> expected = new List <Book> { livro3, livro4, livro1, livro2 }; var actual = new List <Book>(service.Order("title, asc")); CollectionAssert.AreEqual(expected, actual); }
public void SutOrderByEditionDescendingAndAuthorDescendingAndTitleAscending() { var context = new TestAppContext(new[] { new Sorting <Book> { Column = c => c.EditionYear, Ascending = false }, new Sorting <Book> { Column = c => c.AuthorName, Ascending = false }, new Sorting <Book> { Column = c => c.Title, Ascending = true } }); IBooksOrderer orderer = new BooksOrderer(context); var books = GetBooks(); var result = orderer.Order(books); Assert.IsNotNull(result); Assert.AreEqual("Internet & World Wide Web: How to Program", result.ElementAt(0).Title); Assert.AreEqual("Java How to Program", result.ElementAt(1).Title); Assert.AreEqual("Head First Design Patterns", result.ElementAt(2).Title); Assert.AreEqual("Patterns of Enterprise Application Architecture", result.ElementAt(3).Title); }
public void SutNotOrderIfSortingIsEmpty() { var context = new TestAppContext(new Sorting <Book> [0]); IBooksOrderer orderer = new BooksOrderer(context); var books = GetBooks(); var result = orderer.Order(books); Assert.IsFalse(result.Any()); }
public void SutNotOrderIfSortingIsNull() { var context = new TestAppContext(null); IBooksOrderer orderer = new BooksOrderer(context); var books = GetBooks(); try { var result = orderer.Order(books); Assert.Fail(); } catch (Exception ex) { Assert.IsInstanceOfType(ex, typeof(OrdenationException)); } }
static void Main(string[] args) { char option = '0'; bool nao_sair = true; while (nao_sair) { switch (option) { case '0': // Inicio Console.WriteLine("Informe as seguintes opções"); Console.WriteLine("1 - Adicionar livro"); Console.WriteLine("2 - Ordernar livros"); Console.WriteLine("3 - Limpar livros"); Console.WriteLine("4 - Sair"); option = Console.ReadKey(true).KeyChar; Console.Clear(); break; case '1': // Adicionar livro option = '0'; Console.Write("Informe o titulo: "); string titulo = Console.ReadLine(); Console.Write("Informe o autor: "); string autor = Console.ReadLine(); Console.Write("Informe o ano: "); string anoChar = Console.ReadLine(); int ano; if (!Int32.TryParse(anoChar, out ano)) { Console.Write("Somente números no ano"); break; } service.AddBook(titulo, autor, ano); Console.Write("Livro adicionado"); Console.ReadKey(true); Console.Clear(); break; case '2': // Ordenar option = '0'; try { string rules = ConfigurationManager.AppSettings["rules"]; if (String.IsNullOrEmpty(rules)) { Console.Write("Configuração da regra de classificação não encontrada"); break; } var rulesSplit = rules.Split('|'); var ordered = service.Order(rulesSplit); int i = 1; foreach (var item in ordered) { Console.WriteLine($"{i++}°"); Console.WriteLine($"Titulo: {item.Title}"); Console.WriteLine($"Autor: {item.AuthorName}"); Console.WriteLine($"Edição: {item.EditionYear}"); } Console.WriteLine(); Console.WriteLine("Pressione qualquer tecla para continuar"); Console.ReadKey(true); } catch (OrderException ex) { Console.WriteLine($"Error: {ex.Message}"); Console.WriteLine("Pressione qualquer tecla para continuar"); Console.ReadKey(true); } Console.Clear(); break; case '3': // Limpar livros option = '0'; service.Clear(); Console.Clear(); break; case '4': // Sair nao_sair = false; break; default: option = '0'; Console.WriteLine("Opção inválida"); Console.ReadKey(true); Console.Clear(); break; } } }