public void FromJsonWithExtraValuesShouldYieldAllValues()
        {
            const string adUnitId           = "1234";
            const string adUnitName         = "my awesome ad unit";
            const string adUnitFormat       = "Rewarded Video";
            const string impressionId       = "5678";
            const string currency           = "USD";
            const double publisherRevenue   = 0.00001;
            const string adGroupId          = "9012";
            const string adGroupName        = "my great ad group";
            const string adGroupType        = "marketplace";
            const int    adGroupPriority    = 1;
            const string country            = "USA";
            const string precision          = "publisher_defined";
            const string networkName        = "MoPub";
            const string networkPlacementId = "3456";

            var json = GetJson(
                adUnitId,
                adUnitName,
                adUnitFormat,
                impressionId,
                currency,
                publisherRevenue,
                adGroupId,
                adGroupName,
                adGroupType,
                adGroupPriority,
                country,
                precision,
                networkName,
                networkPlacementId);
            var jsonWithExtra = json.Substring(0, json.Length - 1)
                                + GetJsonEntry("some_extra_key", "some_extra_value") + "}";

            MoPubBase.ImpressionData impData = MoPubBase.ImpressionData.FromJson(jsonWithExtra);

            Assert.That(impData.AdUnitId, Is.EqualTo(adUnitId));
            Assert.That(impData.AdUnitName, Is.EqualTo(adUnitName));
            Assert.That(impData.AdUnitFormat, Is.EqualTo(adUnitFormat));
            Assert.That(impData.ImpressionId, Is.EqualTo(impressionId));
            Assert.That(impData.Currency, Is.EqualTo(currency));
            Assert.That(impData.PublisherRevenue, Is.EqualTo(publisherRevenue));
            Assert.That(impData.AdGroupId, Is.EqualTo(adGroupId));
            Assert.That(impData.AdGroupName, Is.EqualTo(adGroupName));
            Assert.That(impData.AdGroupType, Is.EqualTo(adGroupType));
            Assert.That(impData.AdGroupPriority, Is.EqualTo(adGroupPriority));
            Assert.That(impData.Country, Is.EqualTo(country));
            Assert.That(impData.Precision, Is.EqualTo(precision));
            Assert.That(impData.NetworkName, Is.EqualTo(networkName));
            Assert.That(impData.NetworkPlacementId, Is.EqualTo(networkPlacementId));
            Assert.That(impData.JsonRepresentation, Is.EqualTo(jsonWithExtra));
        }
        public void FromJsonWithSomeValuesShouldYieldSetValues()
        {
            const string adUnitId         = "1234";
            const string adUnitFormat     = "Rewarded Video";
            const string currency         = "USD";
            const double publisherRevenue = 0.00001;
            const string adGroupName      = "my great ad group";
            const int    adGroupPriority  = 1;
            const string precision        = "publisher_defined";

            var json = GetJson(
                adUnitId,
                null,
                adUnitFormat,
                null,
                currency,
                publisherRevenue,
                null,
                adGroupName,
                null,
                adGroupPriority,
                null,
                precision,
                null,
                null);

            MoPubBase.ImpressionData impData = MoPubBase.ImpressionData.FromJson(json);

            Assert.That(impData.AdUnitId, Is.EqualTo(adUnitId));
            Assert.That(impData.AdUnitName, Is.Null);
            Assert.That(impData.AdUnitFormat, Is.EqualTo(adUnitFormat));
            Assert.That(impData.ImpressionId, Is.Null);
            Assert.That(impData.Currency, Is.EqualTo(currency));
            Assert.That(impData.PublisherRevenue, Is.EqualTo(publisherRevenue));
            Assert.That(impData.AdGroupId, Is.Null);
            Assert.That(impData.AdGroupName, Is.EqualTo(adGroupName));
            Assert.That(impData.AdGroupType, Is.Null);
            Assert.That(impData.AdGroupPriority, Is.EqualTo(adGroupPriority));
            Assert.That(impData.Country, Is.Null);
            Assert.That(impData.Precision, Is.EqualTo(precision));
            Assert.That(impData.NetworkName, Is.Null);
            Assert.That(impData.NetworkPlacementId, Is.Null);
            Assert.That(impData.JsonRepresentation, Is.EqualTo(json));
        }
        public void FromJsonWithNullValuesShouldYieldEmpty()
        {
            var json = GetJson(
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null);

            MoPubBase.ImpressionData impData = MoPubBase.ImpressionData.FromJson(json);

            Assert.That(impData.AdUnitId, Is.Null);
            Assert.That(impData.AdUnitName, Is.Null);
            Assert.That(impData.AdUnitFormat, Is.Null);
            Assert.That(impData.ImpressionId, Is.Null);
            Assert.That(impData.Currency, Is.Null);
            Assert.That(impData.PublisherRevenue, Is.Null);
            Assert.That(impData.AdGroupId, Is.Null);
            Assert.That(impData.AdGroupName, Is.Null);
            Assert.That(impData.AdGroupType, Is.Null);
            Assert.That(impData.AdGroupPriority, Is.Null);
            Assert.That(impData.Country, Is.Null);
            Assert.That(impData.Precision, Is.Null);
            Assert.That(impData.NetworkName, Is.Null);
            Assert.That(impData.NetworkPlacementId, Is.Null);
            Assert.That(impData.JsonRepresentation, Is.EqualTo(json));
        }
 public void ImpressionTracked(string adUnit, MoPubBase.ImpressionData impressionData)
 {
     UpdateStatusLabel("Impression tracked for " + adUnit + " with impression data: "
                       + impressionData.JsonRepresentation);
 }