jeudi 9 juillet 2015

Unit test void method with Nsubstitute

I want to test if the Update or Insert function is called with a unit test. How would the unit test look like for this?

 public void LogicForUpdatingAndInsertingCountriesFromMPtoClientApp()
    {
        var allCountriesAlreadyInsertedIntoClientDatabase = _countryBLL.GetAllCountries();
        var countiresFromMP = GetAllCountriesWithTranslations();
        List<Country> countiresFromMPmapped = new List<Country>();
        foreach (var country in countiresFromMP)
        {
            Country newCountry = new Country();
            newCountry.CountryCode = country.Code;
            newCountry.Name = country.TranslatedText;
            countiresFromMPmapped.Add(newCountry);


        }
        foreach (var country in countiresFromMPmapped)
        {

            //check if the country is already inserted into the Client Database, if it is update, else insert it
            Country testedCountry = allCountriesAlreadyInsertedIntoClientDatabase.Where(x => x.CountryCode == country.CountryCode).FirstOrDefault();
            //here fallback function for tested country

            if (testedCountry != null)
            {

                    var countryToUpdate = _countryBLL.GetCountryByCode(testedCountry.CountryCode);
                    //return _countryBLL.UpdateCountry(countryToUpdate);
                    _countryBLL.UpdateCountry(countryToUpdate);


            }
            else
            {

                country.CountryId = Guid.NewGuid();
                // return  _countryBLL.InsertCountryFromMP(country);
                _countryBLL.InsertCountryFromMP(country);


            }

        }
        return null;

    }

The method is wraped in an interface which i can mock.

Thank you in advance. :)

Aucun commentaire:

Enregistrer un commentaire