Skip to content

Commit

Permalink
Added unit tests to Airline::flightNumber (#485)
Browse files Browse the repository at this point in the history
Added follow unit tests:
- Airline::flightNumber without leading zeros
- Airline::flightNumber with leading zeros
- Airline::flightNumberByRange
  • Loading branch information
eric-bodhi committed Jan 20, 2024
1 parent fe828d5 commit e093f7c
Show file tree
Hide file tree
Showing 3 changed files with 39 additions and 2 deletions.
3 changes: 2 additions & 1 deletion include/faker-cxx/Airline.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

#include <string>
#include <vector>

#include "./types/AirlineTypes.h"

namespace faker
Expand Down Expand Up @@ -110,6 +111,6 @@ class Airline
* Airline::flightNumber(false, {1, 4}) // "234" // "12" // "1234"
* @endcode
*/
static std::string flightNumber(bool addLeadingZeros = false, Range length = {1, 4});
static std::string flightNumberByRange(bool addLeadingZeros = false, Range length = {1, 4});
};
}
3 changes: 2 additions & 1 deletion src/modules/airline/Airline.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ std::string Airline::flightNumber(bool addLeadingZeros, unsigned int length)
return String::numeric(length, false);
}

std::string Airline::flightNumber(bool addLeadingZeros, faker::Range length)
std::string Airline::flightNumberByRange(bool addLeadingZeros, faker::Range length)
{
if (addLeadingZeros)
{
Expand All @@ -69,3 +69,4 @@ std::string Airline::flightNumber(bool addLeadingZeros, faker::Range length)
return String::numeric(Number::integer(length.min, length.max), false);
}
}

35 changes: 35 additions & 0 deletions src/modules/airline/AirlineTest.cpp
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#include "faker-cxx/Airline.h"

#include <algorithm>
#include <iostream>
#include <string>

#include "gtest/gtest.h"
Expand All @@ -10,6 +11,8 @@
#include "data/Airplanes.h"
#include "data/Airports.h"
#include "data/Seat.h"
#include "faker-cxx/Number.h"
#include "faker-cxx/String.h"

using namespace ::testing;
using namespace faker;
Expand Down Expand Up @@ -147,3 +150,35 @@ TEST_F(AirlineTest, shouldGenerateSeatNumberWidebody)
[generatedSeatNumber](char letter)
{ return generatedSeatNumber.back() == letter; }));
}

TEST_F(AirlineTest, shouldGenerateFlightNumberNoLeadingZeros)
{
std::string flightNumber = Airline::flightNumber();
int flightNumberInt = std::stoi(flightNumber);

ASSERT_TRUE(flightNumber.length() == 4);

ASSERT_TRUE((flightNumberInt > 999) && (flightNumberInt <= 9999));
}

TEST_F(AirlineTest, shouldGenerateFlightNumberLeadingZeros)
{
bool leadingZero = false;
while (!leadingZero)
{
std::string flightNumber = Airline::flightNumber(true, 4);
if (flightNumber.substr(0, 1) == "0")
{
leadingZero = true;
}
}

ASSERT_TRUE(leadingZero);
}

TEST_F(AirlineTest, shouldGenerateFlightNumberByRange)
{
std::string flightNumber = Airline::flightNumberByRange(false, {1, 6});
ASSERT_TRUE(flightNumber.length() <= 6);
}

0 comments on commit e093f7c

Please sign in to comment.