Пример #1
0
        public void AddLanguage()
        {
            // Arrange
            Language lang = new Language();

            lang.CountryCode = "USA";
            lang.IsOfficial  = false;
            lang.Name        = "Wakandian";
            lang.Percentage  = 5;

            ILanguageDAO dao = new LanguageSqlDAO(ConnectionString);

            // Act
            int  beforeRowCount = GetRowCount("countrylanguage");
            bool result         = dao.AddNewLanguage(lang);

            // Assert
            Assert.IsTrue(result);

            ICollection <Language> allUSLanguages = dao.GetLanguages("USA");

            CollectionAssert.Contains((ICollection)allUSLanguages, lang);

            Assert.AreEqual(beforeRowCount + 1, GetRowCount("countrylanguage"));
        }
Пример #2
0
        static void Main(string[] args)
        {
            // Select all countries
            //GetAllCountries();

            // Get a count of all countries
            //GetCountryCount();

            // Select cities that belong to a country code
            //GetCitiesForCountryCode("USA");


            //Console.ReadKey();
            //return;


            // TODO: Un-comment the Configuration builder and place the connection string in appsettings.json

            //IConfigurationBuilder builder = new ConfigurationBuilder()
            //    .SetBasePath(Directory.GetCurrentDirectory())
            //    .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);

            //IConfigurationRoot configuration = builder.Build();
            //string connectionString = configuration.GetConnectionString("World");


            ICityDAO     cityDAO     = new CitySqlDAO(connectionString);
            ICountryDAO  countryDAO  = new CountrySqlDAO(connectionString);
            ILanguageDAO languageDAO = new LanguageSqlDAO(connectionString);

            WorldGeographyCLI cli = new WorldGeographyCLI(cityDAO, countryDAO, languageDAO);

            cli.RunCLI();
        }
Пример #3
0
        public void GetLanguageByCountryCode()
        {
            // Arrange
            LanguageSqlDAO languageSqlDAO = new LanguageSqlDAO(connectionString);
            // Act
            IList <Language> languages = languageSqlDAO.GetLanguages(countryCodeToTest);

            // Assert
            Assert.IsTrue(languages.Count > 0);
        }
Пример #4
0
        static void Main(string[] args)
        {
            ICityDAO     cityDAO     = new CitySqlDAO(@"Server=.\SQLEXPRESS;Database=World;Trusted_Connection=True;");
            ICountryDAO  countryDAO  = new CountrySqlDAO(@"Server=.\SQLExpress;Database=World;Trusted_Connection=True;");
            ILanguageDAO languageDAO = new LanguageSqlDAO(@"Server=.\SQLEXPRESS;Database=World;Trusted_Connection=True;");

            WorldGeographyCLI cli = new WorldGeographyCLI(cityDAO, countryDAO, languageDAO);

            cli.RunCLI();
        }
Пример #5
0
        public void AddLanguage_FailsBecauseLanguageExists()
        {
            //ARRANGE
            ILanguageDAO           dao            = new LanguageSqlDAO(ConnectionString);
            ICollection <Language> allUSLanguages = dao.GetLanguages("USA");

            //ACT
            Language dup = allUSLanguages.ToArray()[0];

            dao.AddNewLanguage(dup);
        }
Пример #6
0
        public void GetLanguagesTest(string countryCode, int expectedCount)
        {
            // Arrange
            LanguageSqlDAO dal = new LanguageSqlDAO(ConnectionString);

            // Act
            IList <Language> languages = dal.GetLanguages(countryCode);

            // Assert
            Assert.AreEqual(expectedCount, languages.Count);
        }
Пример #7
0
        public void GetLanguageBySpecificCountryCode(string countryCode, int expectedCount)
        {
            // Arrange
            LanguageSqlDAO languageSqlDAO = new LanguageSqlDAO(ConnectionString);

            // Act
            IList <Language> languages = languageSqlDAO.GetLanguages(countryCode);

            // Assert
            Assert.AreEqual(expectedCount, languages.Count);
        }
Пример #8
0
        public void GetLanguagesTest(string continent, int expectedNumberOfRows)
        {
            // Arrange
            LanguageSqlDAO dao = new LanguageSqlDAO(ConnectionString);

            // Act
            IList <Language> languages = dao.GetLanguages(continent);

            // Assert
            Assert.AreEqual(expectedNumberOfRows, languages.Count);
        }
Пример #9
0
        public void TestMethod1()
        {
            // Arrange
            LanguageSqlDAO dao = new LanguageSqlDAO(connectionString);

            // Act
            IList <Language> list  = dao.GetLanguages("ZZZ");
            IList <Language> list2 = dao.GetLanguages("AAA");

            // Assert
            Assert.AreEqual(1, list.Count);
            Assert.AreEqual(0, list2.Count);
        }
Пример #10
0
        public void AddLanguage_FailsBecauseLanguageExists()
        {
            // Arrange
            ILanguageDAO           dao            = new LanguageSqlDAO(ConnectionString);
            ICollection <Language> allUSLanguages = dao.GetLanguages("USA");
            Language dup = allUSLanguages.ToArray()[0];

            //dup.Name = "something else"; the PK is the language and the countrycode so if we change the name, then it doesn't have a pk dup

            // Act
            dao.AddNewLanguage(dup);

            // Assert
            // SqlException is expected to be thrown
        }
Пример #11
0
        public void RemoveLanguage()
        {
            // Arrange
            ILanguageDAO           dao            = new LanguageSqlDAO(ConnectionString);
            ICollection <Language> allUSLanguages = dao.GetLanguages("USA");
            Language lang = allUSLanguages.ToArray()[0];

            // Act
            int  beforeRowCount = GetRowCount("countrylanguage");
            bool result         = dao.RemoveLanguage(lang);

            // Assert
            Assert.IsTrue(result);
            Assert.AreEqual(beforeRowCount - 1, GetRowCount("countrylanguage"));
        }
Пример #12
0
        public void AddLanguage_FailsBecauseLanguageExists()
        {
            // Arrange
            LanguageSqlDAO dal      = new LanguageSqlDAO(ConnectionString);
            Language       language = new Language()
            {
                CountryCode = "USA",
                Name        = "Test Language", //already exists
                IsOfficial  = true,
                Percentage  = 80
            };

            // Act
            dal.AddNewLanguage(language);
        }
Пример #13
0
        public void AddLanguageDuplicateTest()
        {
            // Arrange
            LanguageSqlDAO languageSqlDAO = new LanguageSqlDAO(ConnectionString);
            Language       language       = new Language
            {
                CountryCode = newCountryCode,
                Name        = "Elvish",
                IsOfficial  = true,
                Percentage  = 5
            };

            // Assert
            Assert.IsTrue(languageSqlDAO.AddNewLanguage(language));
        }
Пример #14
0
        public void AddLanguage()
        {
            // Arrange
            Language lang = new Language();

            lang.CountryCode = "USA";
            lang.IsOfficial  = false;
            lang.Name        = "miaw";
            lang.Percentage  = 5;

            ILanguageDAO dao = new LanguageSqlDAO(ConnectionString);
            // Act
            bool result = dao.AddNewLanguage(lang);

            // Assert
            Assert.IsTrue(result);
        }
Пример #15
0
        static void Main(string[] args)
        {
            IConfigurationBuilder builder = new ConfigurationBuilder()
                                            .SetBasePath(Directory.GetCurrentDirectory())
                                            .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);

            IConfigurationRoot configuration    = builder.Build();
            string             connectionString = configuration.GetConnectionString("World");

            ICityDAO     cityDAO     = new CitySqlDAO(connectionString);
            ICountryDAO  countryDAO  = new CountrySqlDAO(connectionString);
            ILanguageDAO languageDAO = new LanguageSqlDAO(connectionString);

            WorldGeographyCLI cli = new WorldGeographyCLI(cityDAO, countryDAO, languageDAO);

            cli.RunCLI();
        }
Пример #16
0
        public void AddLanguageDuplicateTest()
        {
            // Arrange
            LanguageSqlDAO languageSqlDAO = new LanguageSqlDAO(connectionString);
            Language       language       = new Language
            {
                CountryCode = countryCodeToTest,
                Name        = languageToTest,
                IsOfficial  = true,
                Percentage  = 5
            };
            // Act
            bool didItWork = languageSqlDAO.AddNewLanguage(language);

            // Assert
            Assert.IsFalse(didItWork);
        }
Пример #17
0
        public void AddLanguage_FailsBecauseLanguageExists()
        {
            // Arrange
            LanguageSqlDAO languageDAO     = new LanguageSqlDAO(ConnectionString);
            int            initialRowCount = GetRowCount("countrylanguage");
            Language       lang            = new Language();

            lang.CountryCode = "USA";
            lang.Name        = "Test Language";
            lang.IsOfficial  = true;
            lang.Percentage  = 50;

            // Act

            languageDAO.AddNewLanguage(lang);
            // Assert
            // should not work
        }
Пример #18
0
        static void Main(string[] args)
        {
            //IConfigurationBuilder builder = new ConfigurationBuilder()
            //    .SetBasePath(Directory.GetCurrentDirectory())
            //    .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);

            //IConfigurationRoot configuration = builder.Build();
            //string connectionString = configuration.GetConnectionString("World");


            ICityDAO     cityDAO     = new CitySqlDAO(@"Server=.\SQLEXPRESS;Database=World;Trusted_Connection=True;");
            ICountryDAO  countryDAO  = new CountrySqlDAO(@"Server=.\SQLEXPRESS;Database=World;Trusted_Connection=True;");
            ILanguageDAO languageDAO = new LanguageSqlDAO(@"Server=.\SQLEXPRESS;Database=World;Trusted_Connection=True;");

            WorldGeographyCLI cli = new WorldGeographyCLI(cityDAO, countryDAO, languageDAO);

            cli.RunCLI();
        }
Пример #19
0
        static void Main(string[] args)
        {
            IConfigurationBuilder builder = new ConfigurationBuilder();

            builder.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);
            IConfigurationRoot configuration    = builder.Build();
            string             connectionString = configuration.GetConnectionString("World");

            ICityDAO     cityDAO     = new CitySqlDAO(connectionString);
            ICountryDAO  countryDAO  = new CountrySqlDAO(connectionString);
            ILanguageDAO languageDAO = new LanguageSqlDAO(connectionString);

            WorldDBMenu menu = new WorldDBMenu(cityDAO, countryDAO, languageDAO);

            menu.Run();
            Console.ForegroundColor = ConsoleColor.DarkRed;
            Console.Write("Goodbye...");
            Thread.Sleep(1500);
        }
Пример #20
0
        public void RemoveLanguage()
        {
            // Arrange
            LanguageSqlDAO languageDAO     = new LanguageSqlDAO(ConnectionString);
            int            initialRowCount = GetRowCount("countrylanguage");
            Language       lang            = new Language();

            lang.CountryCode = "USA";
            lang.Name        = "Test Language";
            lang.IsOfficial  = true;
            lang.Percentage  = 50;

            // Act

            languageDAO.RemoveLanguage(lang);
            int finalRowCount = GetRowCount("countrylanguage");

            // Assert
            Assert.AreEqual(initialRowCount - 1, finalRowCount);
        }
Пример #21
0
        static void Main(string[] args)
        {
            // Use this as is, it will allow you access to the data in appsettings.json file
            IConfigurationBuilder builder = new ConfigurationBuilder()
                                            .SetBasePath(Directory.GetCurrentDirectory())
                                            .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);

            IConfigurationRoot configuration = builder.Build();

            // Replace world with the key name used for your connection string in the appsettings.json file
            string connectionString = configuration.GetConnectionString("World");

            ICityDAO     cityDAO     = new CitySqlDAO(connectionString);
            ICountryDAO  countryDAO  = null;
            ILanguageDAO languageDAO = new LanguageSqlDAO(connectionString);

            WorldGeographyCLI cli = new WorldGeographyCLI(cityDAO, countryDAO, languageDAO);

            cli.RunCLI();
        }
Пример #22
0
        public void TestUpdateLanguage()
        {
            //Arrange
            ILanguageDAO           dao            = new LanguageSqlDAO(ConnectionString);
            ICollection <Language> allUSLanguages = dao.GetLanguages("USA");
            Language lang = allUSLanguages.ToArray()[0];

            lang.Percentage = 50;

            //Act
            bool result = dao.UpdateLanguage(lang);

            //Assert
            Assert.IsTrue(result);
            Assert.AreEqual(50, lang.Percentage);//this is NOT checkign the DAO

            ICollection <Language> updatedLanguages = dao.GetLanguages("USA");

            CollectionAssert.Contains((ICollection)updatedLanguages, lang);
        }
Пример #23
0
        public void RemoveLanguage()
        {
            // Arrange
            LanguageSqlDAO dao = new LanguageSqlDAO(ConnectionString);

            // Act
            Language language = new Language();

            language.Name        = "Test Language";
            language.CountryCode = "USA";

            int  rowsBefore   = GetRowCount("countrylanguage");
            bool isSuccessful = dao.RemoveLanguage(language);
            int  rowsAfter    = GetRowCount("countrylanguage");

            // Assert
            int countChange = rowsAfter - rowsBefore;

            Assert.AreEqual(-1, countChange, "wrong number of rows after deletion");
            Assert.IsTrue(isSuccessful, "returned wrong bool value");
        }
Пример #24
0
        public void RemoveLanguage()
        {
            // Arrange
            LanguageSqlDAO dal             = new LanguageSqlDAO(ConnectionString);
            int            initialRowCount = GetRowCount("countrylanguage");
            Language       language        = new Language()
            {
                CountryCode = "USA",
                Name        = "Test Language",
                IsOfficial  = true,
                Percentage  = 80
            };

            // Act
            dal.RemoveLanguage(language);

            // Assert
            int finalRowCount = GetRowCount("countrylanguage");

            Assert.AreEqual(initialRowCount - 1, finalRowCount);
        }
Пример #25
0
        static void Main(string[] args)
        {
            // TODO: This is how we load a configuration file and get the connection string
            IConfigurationBuilder builder = new ConfigurationBuilder();

            builder.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);
            IConfigurationRoot configuration    = builder.Build();
            string             connectionString = configuration.GetConnectionString("World");

            // TODO: This gets a custom value from the Config file
            bool useFileDAO = configuration.GetSection("DAO").GetValue <bool>("UseFileDAO", false);

            // TODO: Here, the Main method creates instances of DAOs which will be "injected" into the menu (CLI).
            ICityDAO     cityDAO;
            ICountryDAO  countryDAO;
            ILanguageDAO languageDAO;

            if (useFileDAO)
            {
                // TODO: This is a COMPLETELY different set of DAOs which implement the SAME interfaces
                cityDAO     = new CityFileDAO(@"..\..\..\City_Data.txt");
                countryDAO  = new CountryFileDAO(@"..\..\..\Country_Data.txt");
                languageDAO = new LanguageFileDAO(@"..\..\..\Language_Data.txt");
            }
            else
            {
                cityDAO     = new CitySqlDAO(connectionString);
                countryDAO  = new CountrySqlDAO(connectionString);
                languageDAO = new LanguageSqlDAO(connectionString);
            }

            // TODO: Here, we create the menu, and "inject" the DAOs we want to use
            WorldDBMenu menu = new WorldDBMenu(cityDAO, countryDAO, languageDAO);

            menu.Run();

            Console.ForegroundColor = ConsoleColor.DarkRed;
            Console.Write("Goodbye...");
            Thread.Sleep(1500);
        }
Пример #26
0
        public void RemoveLanguage()
        {
            // Arrange

            ILanguageDAO dao = new LanguageSqlDAO(ConnectionString);

            Language lang = new Language();

            lang.CountryCode = "USA";
            lang.IsOfficial  = false;
            lang.Name        = "miaw";
            lang.Percentage  = 5;


            // Act
            bool result         = dao.RemoveLanguage(lang);
            int  beforeRowCount = GetRowCount("countrylanguage");

            // Assert
            Assert.IsTrue(result); //remove me
            Assert.AreEqual(beforeRowCount - 1, GetRowCount("countrylanguage"));
        }
Пример #27
0
        public void GetLanguagesTest(string countryCode, int expectedCount)
        {
            // Arrange
            ILanguageDAO dao = new LanguageSqlDAO(ConnectionString);

            //Act
            IList <Language> list = dao.GetLanguages(countryCode);

            //Assert
            Assert.AreEqual(expectedCount, list.Count);


            /* Not using DataRow attributes
             * // Act
             * IList<Language> list = dao.GetLanguages("USA");
             * // Assert
             * Assert.AreEqual(1, list.Count);
             * list = dao.GetLanguages("XYZ");
             * // Assert
             * Assert.AreEqual(0, list.Count);
             */
        }
Пример #28
0
        static void Main(string[] args)
        {
            // The code in the region reads "appsettings" so that the connection string can:
            //  1) be in one place in the code
            //  2) can be modified in the bin/debug.netcoreapp2.1 folder without having to
            //     change and recompile the program

            #region Get Configuration String
            IConfigurationBuilder builder = new ConfigurationBuilder()
                                            .SetBasePath(Directory.GetCurrentDirectory())
                                            .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);

            IConfigurationRoot configuration    = builder.Build();
            string             connectionString = configuration.GetConnectionString("World");
            #endregion

            ICityDAO     cityDAO     = new CitySqlDAO(connectionString);
            ICountryDAO  countryDAO  = new CountrySqlDAO(connectionString);
            ILanguageDAO languageDAO = new LanguageSqlDAO(connectionString);

            WorldGeographyCLI cli = new WorldGeographyCLI(cityDAO, countryDAO, languageDAO);
            cli.RunCLI();
        }
        public void Test_RemoveLanguage_Result_and_Count()
        {
            //Arrange
            LanguageSqlDAO dao = new LanguageSqlDAO(ConnectionString);

            Language language = new Language();

            language.CountryCode = "USA";
            language.Name        = "C#";
            language.IsOfficial  = false;

            dao.AddNewLanguage(language);

            int beforeDeleteCount = GetRowCount("countrylanguage");

            //Action
            bool result           = dao.RemoveLanguage(language);
            int  afterDeleteCount = GetRowCount("countrylanguage");

            //Assert
            Assert.IsTrue(result, "RemoveLanguage returned false");
            Assert.AreEqual(beforeDeleteCount - 1, afterDeleteCount, "Row count did not decrease.");
        }
Пример #30
0
        public void AddLanguageHappyTest()
        {
            // Arrange
            LanguageSqlDAO   languageSqlDAO = new LanguageSqlDAO(ConnectionString);
            IList <Language> allLanguages   = languageSqlDAO.GetLanguages(newCountryCode);

            foreach (Language foo in allLanguages)
            {
                if (foo.Name.Equals("Klingon"))
                {
                    Assert.IsTrue(false);
                }
            }
            Language language = new Language
            {
                CountryCode = newCountryCode,
                Name        = "Klingon",
                IsOfficial  = true,
                Percentage  = 5
            };

            // Assert
            Assert.IsTrue(languageSqlDAO.AddNewLanguage(language));
        }