示例#1
0
        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));
            }
        }
示例#5
0
        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;
                }
            }
        }