/* ****************************************************************************
*
* constructorsAndCheck -
*
* FIXME P5 #1862: _json countepart?
*/
TEST(UnsubscribeContextAvailabilityRequest, DISABLED_constructorAndCheck)
{
  UnsubscribeContextAvailabilityRequest ucar1;
  SubscriptionId                        subId("012345678901234567890123");
  UnsubscribeContextAvailabilityRequest ucar2(subId);

  utInit();

  EXPECT_EQ("", ucar1.subscriptionId.get());
  EXPECT_EQ("012345678901234567890123", ucar2.subscriptionId.get());

  std::string   out;
  const char*   outfile1 = "ngsi9.unsubscribeContextAvailabilityResponse.forcedError.valid.xml";
  const char*   outfile2 = "ngsi9.unsubscribeContextAvailabilityResponse.invalidSubscriptionId.valid.xml";

  out = ucar1.check(UnsubscribeContextAvailability, "", "Forced Error", 0);
  EXPECT_EQ("OK", testDataFromFile(expectedBuf, sizeof(expectedBuf), outfile1)) << "Error getting test data from '" << outfile1 << "'";
  EXPECT_STREQ(expectedBuf, out.c_str());

  ucar1.subscriptionId.set("1");
  out = ucar1.check(UnsubscribeContextAvailability, "", "", 0);
  EXPECT_EQ("OK", testDataFromFile(expectedBuf, sizeof(expectedBuf), outfile2)) << "Error getting test data from '" << outfile2 << "'";
  EXPECT_STREQ(expectedBuf, out.c_str());

  out = ucar2.check(UnsubscribeContextAvailability, "", "", 0);
  EXPECT_EQ("OK", out);

  utExit();
}
/* ****************************************************************************
*
* constructorsAndRender - 
*/
TEST(UnsubscribeContextAvailabilityResponse, constructorsAndRender)
{
  UnsubscribeContextAvailabilityResponse  ucar1;
  SubscriptionId                          subscriptionId;

  utInit();

  subscriptionId.set("111122223333444455556666");

  UnsubscribeContextAvailabilityResponse  ucar2(subscriptionId);
  StatusCode                              ec(SccBadRequest, "D");
  UnsubscribeContextAvailabilityResponse  ucar3(ec);
  std::string                             out;
  const char*                             outfile = "ngsi9.unsubscribeContextAvailabilityResponse.constructorsAndRender.valid.xml";

  EXPECT_EQ(0,                    ucar1.statusCode.code);
  EXPECT_EQ(subscriptionId.get(), ucar2.subscriptionId.get());
  EXPECT_EQ(SccBadRequest,        ucar3.statusCode.code);

  out = ucar3.render(UnsubscribeContext, XML, "");
  EXPECT_EQ("OK", testDataFromFile(expectedBuf, sizeof(expectedBuf), outfile)) << "Error getting test data from '" << outfile << "'";
  EXPECT_STREQ(expectedBuf, out.c_str());

  utExit();
}
/* ****************************************************************************
*
* constructorsAndCheck -
*
*/
TEST(UnsubscribeContextAvailabilityRequest, constructorAndCheck)
{
  UnsubscribeContextAvailabilityRequest ucar1;
  SubscriptionId                        subId("012345678901234567890123");
  UnsubscribeContextAvailabilityRequest ucar2(subId);

  utInit();

  EXPECT_EQ("", ucar1.subscriptionId.get());
  EXPECT_EQ("012345678901234567890123", ucar2.subscriptionId.get());

  std::string   out;  

  out = ucar2.check(UnsubscribeContextAvailability, "", "", 0);
  EXPECT_EQ("OK", out);

  utExit();
}
/* ****************************************************************************
*
* constructorsAndRender - 
*
*/
TEST(UnsubscribeContextAvailabilityResponse, constructorsAndRender)
{
  UnsubscribeContextAvailabilityResponse  ucar1;
  SubscriptionId                          subscriptionId;

  utInit();

  subscriptionId.set("111122223333444455556666");

  UnsubscribeContextAvailabilityResponse  ucar2(subscriptionId);
  StatusCode                              ec(SccBadRequest, "D");
  UnsubscribeContextAvailabilityResponse  ucar3(ec);
  std::string                             out;

  EXPECT_EQ(0,                    ucar1.statusCode.code);
  EXPECT_EQ(subscriptionId.get(), ucar2.subscriptionId.get());
  EXPECT_EQ(SccBadRequest,        ucar3.statusCode.code);

  utExit();
}