Posted by Michael Horvath under Technology  Test Automation  .Net Web API  on Sep 02 2022

You may have already downloaded our nuget package and want some additional assistance in getting started using HSS_API_Store_SDK. Below you will find a unit test code snippet that demonstrates calls to the methods provided in our nuget package. Be sure to scroll through the entire post there is more after the following code.

 
using HSS_API_Store_SDK;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
using System.Configuration;
using System.Threading.Tasks;
using static HSS_API_Store_SDK.apiResponsePasswords;
using static HSS_API_Store_SDK.apiResponseFoods;
using static HSS_API_Store_SDK.apiResponsePeople;

namespace HSS_API_Store_SDK_UnitTests
{
    [TestClass]
    public class UnitTest1
    {
        [TestMethod]
        public async Task TestMethod1()
        {
            var apiResponse = await Passwords.GetPasswordsAsync(ConfigurationManager.AppSettings.Get("HSS_API_Store_EmailAddress"), 
                ConfigurationManager.AppSettings.Get("HSS_API_Store_PasswordsKey"), 10, 20, 8, "", true, RequiredSymbols.Digits);

            Assert.IsNotNull(apiResponse);
            Assert.IsNotNull(apiResponse.passwordValues);
            Assert.AreEqual(ResponseEnumPasswords.Success, apiResponse.responseStatus);
            Assert.AreEqual(9, apiResponse.passwordValues.GetUpperBound(0));

            foreach(var password in apiResponse.passwordValues)
            {
                Console.WriteLine(password);
            }
        }

        [TestMethod]
        public async Task TestMethod2()
        {
            var apiResponse = await Passwords.GetPasswordsAsync(ConfigurationManager.AppSettings.Get("HSS_API_Store_EmailAddress"), 
                ConfigurationManager.AppSettings.Get("HSS_API_Store_PasswordsKey"), PasswordCharacterSelection: RequiredSymbols.Digits);

            Assert.IsNotNull(apiResponse);
            Assert.IsNotNull(apiResponse.passwordValues);
            Assert.AreEqual(ResponseEnumPasswords.Success, apiResponse.responseStatus);
            Assert.AreEqual(0, apiResponse.passwordValues.GetUpperBound(0));

            foreach (var password in apiResponse.passwordValues)
            {
                Console.WriteLine(password);
            }
        }

        [TestMethod]
        public async Task TestMethod3()
        {
            var apiResponse = await Foods.GetFoodsAsync(ConfigurationManager.AppSettings.Get("HSS_API_Store_EmailAddress"), 
                ConfigurationManager.AppSettings.Get("HSS_API_Store_FoodsKey"));

            Assert.IsNotNull(apiResponse);
            Assert.IsNotNull(apiResponse.foodsList);
            Assert.AreEqual(ResponseEnumFoods.Success, apiResponse.responseStatus);
            Assert.AreEqual(0, apiResponse.foodsList.ToArray().GetUpperBound(0));

            foreach (var food in apiResponse.foodsList)
            {
                Console.WriteLine(food.foodInformation.Name);
            }
        }

        [TestMethod]
        public async Task TestMethod4()
        {
            var apiResponse = await Foods.GetFoodsAsync(ConfigurationManager.AppSettings.Get("HSS_API_Store_EmailAddress"),
                ConfigurationManager.AppSettings.Get("HSS_API_Store_FoodsKey"), 20, "goat's milk");

            Assert.IsNotNull(apiResponse);
            Assert.IsNotNull(apiResponse.foodsList);
            Assert.AreEqual(ResponseEnumFoods.Success, apiResponse.responseStatus);
            Assert.AreEqual(19, apiResponse.foodsList.ToArray().GetUpperBound(0));

            foreach (var food in apiResponse.foodsList)
            {
                Console.WriteLine(food.foodInformation.BrandName + " " + food.foodInformation.Name + " " + food.foodInformation.HouseholdServing);
                Console.WriteLine(food.foodInformation.Ingredients);
                Console.WriteLine(" ");
            }
        }

        [TestMethod]
        public async Task TestMethod5()
        {
            var apiResponse = await People.GetPeopleAsync(ConfigurationManager.AppSettings.Get("HSS_API_Store_EmailAddress"), 
                ConfigurationManager.AppSettings.Get("HSS_API_Store_PeopleKey"), 5, StateSelection: StateIDEnum.AR);

            Assert.IsNotNull(apiResponse);
            Assert.IsNotNull(apiResponse.peopleList);
            Assert.AreEqual(ResponseEnumPeople.Success, apiResponse.responseStatus);
            Assert.AreEqual(4, apiResponse.peopleList.ToArray().GetUpperBound(0));

            foreach (var person in apiResponse.peopleList)
            {
                Console.WriteLine(person.Prefix + " " + person.FirstName + " " + person.LastName);
                Console.WriteLine(person.AddressLine1);
                if (person.AddressLine2 != null && person.AddressLine2 != "")
                    Console.WriteLine(person.AddressLine2);
                Console.WriteLine(person.City + ", " + person.StateID + " " + person.ZipCode);
                Console.WriteLine(person.PhoneNumber.FormatPhoneNumber());
                Console.WriteLine(" ");
            }
        }
    }
}



You will need to setup an app.config file in your project if you want to build this unit test code to define the AppSettings used in the code. Below is a sample app.config with placeholders in curly braces for your email and API keys. You can change these to the values you received when you requested API keys from our API Store.



  
    
    
    
    
  
  
    
      
        
        
      
    
  



Thank you for downloading our SDK and for reading our post!

Tagged --no tags--
Posted by Michael Horvath under Technology  Test Automation  .Net Web API  on Aug 21 2022


We have been working on .Net Web APIs that provide functionality that you may incorporate into your own application. As of this posting we have three APIs available: 1) GetFoodsAPI, 2) PasswordGeneratorAPI and 3) PeopleGeneratorAPI.

The get foods API will return records from the USDA Food Database used in our Food Allergy Checker. You may pass your criterion to the API to search the database for foods matching the criterion. We limit the result set to top {Count} parameter setting which allows values from 1 to 20.

The password generator can be used in a number of ways. Some examples are to generate access keys for your applications, to generate passwords to login to your various accounts, and more...

The people generator will generate random fictional people information that is useful for test automation where you need to test an application with fictitious people. This API is configurable to let you select the state you want the people to be located in. The addresses are made up randomly but do use actual city names and zip codes for more realistic data. The phone numbers are appropriate for the area code of the city the people are located in. The API could for example be consumed from a Selenium test automation using your code to call the API. We will work on examples of using this API to aid you in your development of these. Please check back later for future posts on the topic.

We hope you find these to be useful and look for future APIs to appear on the store site. Thanks for reading about our efforts and have a blessed day!

Tagged --no tags--