Esempio n. 1
0
        private static void Main(string[] args)
        {
            IEnumerable <string>        quotesList = new string[] { "quote1", "quote2", "quote3", "quote4", "quote5", "quotes6" };
            SimpleRandomQuoteProvider   object1    = new SimpleRandomQuoteProvider();
            DefaultRandomQuoteGenerator object2    = new DefaultRandomQuoteGenerator(quotesList);

            if (args.Length > 0)
            {
                Console.WriteLine("Number of quotes wanted (enter a number):" + args[0]);
                object1.printNumberofQuotes(Convert.ToInt64(args[0]));
                object2.printNumberofQuotes(Convert.ToInt64(args[0]));
            }

            else
            {
                Console.WriteLine("No command line arguments found.");
            }

            Console.ReadKey();

            // test code to see if simpleRandomQuoteProvider and DefaultRandomQuoteGenerator works
            object1.printNumberofQuotes(3);
            Console.WriteLine("---------------------");
            object2.printNumberofQuotes(4);
        }
        public void TestGetSingleQuoteFive()
        {
            IEnumerable <string>        lines = System.IO.File.ReadAllLines(@"..\..\quotes.txt");
            DefaultRandomQuoteGenerator d     = new DefaultRandomQuoteGenerator(lines);
            QuotesController            q     = new QuotesController(d);

            var actual1 = q.Get(5);

            Assert.That(actual1.Value.id, Is.EqualTo(5));
            Assert.That(actual1.Value.quote, Is.EqualTo("You miss 100% of the shots you don’t take."));
            Assert.That(actual1.Value.author, Is.EqualTo("Wayne Gretzky"));
        }
Esempio n. 3
0
        public void TestFindQuotesById()
        {
            IEnumerable <string>        lines = System.IO.File.ReadAllLines(@"..\..\quotes.txt");
            DefaultRandomQuoteGenerator d     = new DefaultRandomQuoteGenerator(lines);
            var    id = 5;
            string q  = d.FindQuoteById(5);
            string a  = d.FindAuthorById(5);

            Assert.That(id, Is.EqualTo(5));
            Assert.That(q, Is.EqualTo("You miss 100% of the shots you don’t take."));
            Assert.That(a, Is.EqualTo("Wayne Gretzky"));
        }
Esempio n. 4
0
        public void Test_Get_2()
        {
            IEnumerable <string> quoteList = System.IO.File.ReadLines(@"C:\Users\drayl20\source\repos\PleaseWork480b\quotable\quotable.core\quotesFile");

            DefaultRandomQuoteGenerator generator  = new DefaultRandomQuoteGenerator(quoteList);
            quotesController            controller = new quotesController(generator);

            var actual = controller.Get(2.ToString());



            //String instead of object
            Assert.That(actual.Value.id, Is.EqualTo(2.ToString()));
            Assert.That(actual.Value.quote, Is.EqualTo("Anything can happen in life, especially nothing"));
            Assert.That(actual.Value.author, Is.EqualTo("Michel Houellebecq"));
        }
Esempio n. 5
0
        public void Test_Get_1()
        {
            IEnumerable <string> quoteList = System.IO.File.ReadLines(@"C:\Users\drayl20\source\repos\PleaseWork480b\quotable\quotable.core\quotesFile");

            DefaultRandomQuoteGenerator generator  = new DefaultRandomQuoteGenerator(quoteList);
            quotesController            controller = new quotesController(generator);

            var actual = controller.Get(1.ToString());



            //String instead of object
            Assert.That(actual.Value.id, Is.EqualTo(1.ToString()));
            Assert.That(actual.Value.quote, Is.EqualTo("Never regret anything that made you smile"));
            Assert.That(actual.Value.author, Is.EqualTo("Mark Twain"));
        }
Esempio n. 6
0
        public void Test_Get_0()
        {
            IEnumerable <string> quoteList = System.IO.File.ReadLines(@"C:\Users\drayl20\source\repos\PleaseWork480b\quotable\quotable.core\quotesFile");

            DefaultRandomQuoteGenerator generator  = new DefaultRandomQuoteGenerator(quoteList);
            quotesController            controller = new quotesController(generator);

            var actual = controller.Get(0.ToString());



            //String instead of object
            Assert.That(actual.Value.id, Is.EqualTo(0.ToString()));
            Assert.That(actual.Value.quote, Is.EqualTo("You can get straight A's and still flunk life"));
            Assert.That(actual.Value.author, Is.EqualTo("Walker Percy"));
        }
Esempio n. 7
0
        public void Test_Random()
        {
            IEnumerable <string>        quoteList  = System.IO.File.ReadLines(@"C:\Users\drayl20\source\repos\PleaseWork480b\quotable\quotable.core\quotesFile");
            DefaultRandomQuoteGenerator generator  = new DefaultRandomQuoteGenerator(quoteList);
            randomController            controller = new randomController(generator);

            var actual = controller.Get();

            var id     = actual.Value.id;
            var quote  = generator.RetrieveQuoteById(id);
            var author = generator.RetrieveAuthorById(id);

            Assert.That(id, Is.EqualTo(actual.Value.id.ToString()));
            Assert.That(quote, Is.EqualTo(actual.Value.quote));
            //Assert.That(author, Is.EqualTo(actual.Value.author));
        }
        public void TestGetRandomQuote()
        {
            IEnumerable <string>        lines = System.IO.File.ReadAllLines(@"..\..\quotes.txt");
            DefaultRandomQuoteGenerator d     = new DefaultRandomQuoteGenerator(lines);
            RandomQuotesController      q     = new RandomQuotesController(d);
            var actual1    = q.Get();
            var finalCount = 0;
            var count      = 0;

            foreach (string l in lines)
            {
                if (actual1.Value.quote == d.FindQuoteById(count) && actual1.Value.author == d.FindAuthorById(count))
                {
                    finalCount++;
                }
                count++;
            }
            Assert.AreEqual(finalCount, 1);
        }
Esempio n. 9
0
        static void Main(string[] args)
        {
            SimpleRandomQuoteProvider threeQuotes = new SimpleRandomQuoteProvider();

            Console.WriteLine("Enter a number of quotes to show.");
            Console.WriteLine();
            //  Quickly googled how to cast string to long, it will crash if the input isn't a number though.
            long N = long.Parse(Console.ReadLine());

            threeQuotes.showQuotes(N);


            //  Now time for DefaultRandomQuoteGenerator:
            Console.WriteLine("     Now using DefaultRandomQuoteGenerator, printing all 3 quotes:");
            Console.WriteLine();
            DefaultRandomQuoteGenerator someName = new DefaultRandomQuoteGenerator(theQuotes);

            Console.ReadLine();
        }
        public void TestGetAllQuotes()
        {
            IEnumerable <string>        lines = System.IO.File.ReadAllLines(@"..\..\quotes.txt");
            DefaultRandomQuoteGenerator d     = new DefaultRandomQuoteGenerator(lines);
            QuotesController            q     = new QuotesController(d);
            var expected   = 101;
            var count      = 0;
            var actual1    = q.Get();
            var finalCount = 0;

            foreach (QuotableData qd in actual1.Value)
            {
                if (qd.quote == d.FindQuoteById(count) && qd.author == d.FindAuthorById(count))
                {
                    finalCount++;
                }
                count++;
            }
            Assert.AreEqual(finalCount, expected);
        }
Esempio n. 11
0
        /// <summary>
        /// Main class the runs both parts of the program.
        /// The SimpleRandomQuoteProvider is run first after the long value is typed into the console.
        /// Afterwards, an IEnumerable reads the quotes.txt file, and the DefaultRandomQuoteGenerator is run.
        /// </summary>
        private void HW2()
        {
            SimpleRandomQuoteProvider s = new SimpleRandomQuoteProvider();
            long N = long.Parse(Console.ReadLine());

            foreach (string i in s.FindQuotes(N))
            {
                Console.WriteLine(i);
            }
            Console.WriteLine("\nThese are the default quotes.");
            IEnumerable <string>        lines = System.IO.File.ReadAllLines(@"..\..\quotes.txt");
            DefaultRandomQuoteGenerator d     = new DefaultRandomQuoteGenerator(lines);

            N = long.Parse(Console.ReadLine());
            foreach (string i in d.FindQuotes(N))
            {
                Console.WriteLine(i);
            }
            Console.WriteLine("End of Program HW1-2");
        }
Esempio n. 12
0
        private static void PopulateDatabase(QuotableContext c)
        {
            IEnumerable <string>        lines = System.IO.File.ReadAllLines(@"..\..\quotes.txt");
            DefaultRandomQuoteGenerator d     = new DefaultRandomQuoteGenerator(lines);
            var count = 0;

            foreach (string s in lines)
            {
                var author = new Author()
                {
                    FirstName = d.FindAuthorFirstName(count),
                    LastName  = d.FindAuthorLastName(count)
                };
                var quote = new Quote();
                quote.quote = d.FindQuoteById(count);
                var qa = new QuoteAuthor()
                {
                    quote = quote, Author = author
                };
                c.AddRange(qa);
                count++;
            }
            c.SaveChanges();
        }
Esempio n. 13
0
        public void Test_GetAll()
        {
            IEnumerable <string>        quoteList  = System.IO.File.ReadLines(@"C:\Users\drayl20\source\repos\PleaseWork480b\quotable\quotable.core\quotesFile");
            DefaultRandomQuoteGenerator generator  = new DefaultRandomQuoteGenerator(quoteList);
            quotesController            controller = new quotesController(generator);



            int sizeOfList  = 0;
            int count       = 0;
            int actualCount = 0;
            var actual      = controller.Get();

            foreach (QuotableData quote in actual.Value)
            {
                sizeOfList++;
                if (quote.quote == generator.RetrieveQuoteById(count.ToString()) && quote.author == generator.RetrieveAuthorById(count.ToString()))
                {
                    actualCount++;
                }
                count++;
            }
            Assert.AreEqual(actualCount, sizeOfList);
        }
Esempio n. 14
0
 /// <summary>
 /// Constructor for the controller object.
 /// </summary>
 /// <param name="gen"></param>
 public QuotesController(DefaultRandomQuoteGenerator gen)
 {
     generator = gen;
 }
 public quotesController(DefaultRandomQuoteGenerator generator)
 {
     Generator = generator;
 }
Esempio n. 16
0
        /// <summary>
        /// Main creates an instance of SimpleRandomQuoteProvider named simple that
        /// then creates 7 simple quotes in SimpleRandomQuoteProvider from quotable.core
        ///
        /// Main then creates a DefaultRandomQuoteGenerator that prints out quotes
        /// from DefaultRandomQuoteGenerator in quotable.core
        /// </summary>
        /// <param name="args"></param>
        // [miko]
        // entering the world of async
        // see the stackoverflow entry below if your visual studio
        // is complaining about not finding a main method.
        // https://stackoverflow.com/a/44254451/167160
        static async Task Main(string[] args)
        {
            SimpleRandomQuoteProvider simple = new SimpleRandomQuoteProvider();

            foreach (var s in simple.getQuotes(7))
            {
                Console.WriteLine(s);
            }

            string[] quo = new string[4] {
                "one", "two", "three", "four"
            };

            DefaultRandomQuoteGenerator defaultRand = new DefaultRandomQuoteGenerator(quo);

            // [miko]
            // even in a plain console application, we can use the dependency injection functionality
            // provided by microsoft...it is not limited to only aspnet.core applications.
            var container = new ServiceCollection();

            // setup to use a sqlite database
            container.AddDbContext <QuotableContext>(options => options.UseSqlite("Data Source=quote.db"), ServiceLifetime.Transient);
            // [miko]
            // getting a context that has already been disposed.
            // yup.
            // AddDbContext is implicitly scoped.
            // explicitly set the service lifetime
            // https://github.com/aspnet/EntityFrameworkCore/issues/4988

            var provider = container.BuildServiceProvider();

            using (var context = provider.GetService <QuotableContext>())
            {
                // [miko]
                // good for testing
                // bad for production...
                await context.Database.EnsureDeletedAsync();

                // [miko]
                // if the database doesn't exist it will be created
                // this should ideally only be run once in an application lifetime
                // this only ensure existence, this does not perform migrations.
                var dbDidntExist = await context.Database.EnsureCreatedAsync();

                if (dbDidntExist)
                {
                    await PopulateDatabase(context);
                }
            }

            using (var context = provider.GetService <QuotableContext>())
            {
                var quotes = context.Quotes
                             .Include(d => d.QuoteAuthor)
                             .ThenInclude(x => x.Author);

                foreach (var quote in quotes)
                {
                    Console.WriteLine($"quote.id = {quote.Id}");
                    Console.WriteLine($"quote.title = {quote.Body}");

                    foreach (var author in quote.Authors)
                    {
                        Console.WriteLine($"quote.author.id = {author.Id}");
                        Console.WriteLine($"quote.author.firstname = {author.FirstName}");
                        Console.WriteLine($"quote.author.firstname = {author.LastName}");
                    }

                    Console.WriteLine();
                }
            }

            Console.ReadKey();
        }