コード例 #1
0
        public void Test_0012_GetByID_Status_Is_Out_Of_Range()
        {
            this.LogIn();
            client.AddResponse(
                200,
                "{" +
                "    \"_id\" : \"ID-001\"," +
                "    \"description\" : \"Experiment for UT\"," +
                "    \"version\" : 2, " +
                "    \"status\" : 1000, " +
                "    \"conversionEvents\" : [ " +
                "        { \"name\" : \"Event-A\" }, " +
                "        { \"name\" : \"Event-B\" } " +
                "    ], " +
                "    \"variations\" : [ " +
                "        { " +
                "            \"name\" : \"A\", " +
                "            \"percentage\" : 50, " +
                "            \"variableSet\" : {\"message\" : \"set A\"} " +
                "        }, " +
                "        { " +
                "            \"name\" : \"B\", " +
                "            \"percentage\" : 50, " +
                "            \"variableSet\" : {\"message\" : \"set B\"} " +
                "        } " +
                "    ]" +
                "}");
            KiiExperiment experiment = KiiExperiment.GetByID(id);

            // verify Experiment
            Assert.AreEqual("ID-001", experiment.ID);
            Assert.AreEqual("Experiment for UT", experiment.Description);
            Assert.AreEqual(2, experiment.Version);
            Assert.AreEqual(KiiExperimentStatus.PAUSED, experiment.Status);

            // verify VariationA
            Variation variationA = experiment.GetVariationByName("A");

            Assert.AreEqual("A", variationA.Name);
            Assert.AreEqual(50, variationA.Percentage);
            Assert.AreEqual(
                new JsonObject("{\"message\" : \"set A\"}").ToString(),
                variationA.VariableSet.ToString());
            ConversionEvent eventA = experiment.GetConversionEventByName("Event-A");

            Assert.AreEqual("Event-A", eventA.Name);
            // verify VariationB
            Variation variationB = experiment.GetVariationByName("B");

            Assert.AreEqual("B", variationB.Name);
            Assert.AreEqual(50, variationB.Percentage);
            Assert.AreEqual(
                new JsonObject("{\"message\" : \"set B\"}").ToString(),
                variationB.VariableSet.ToString());
            ConversionEvent eventB = experiment.GetConversionEventByName("Event-B");

            Assert.AreEqual("Event-B", eventB.Name);
        }
コード例 #2
0
        public void Test_0000_GetConversionEventByName()
        {
            ConversionEvent e1 = new ConversionEvent("ConversionEvent1");
            ConversionEvent e2 = new ConversionEvent("CONVERSIONEVENT1");
            ConversionEvent e3 = new ConversionEvent("conversionevent1");
            ConversionEvent e4 = new ConversionEvent("ConversionEvent2");
            ConversionEvent e5 = new ConversionEvent("3ConversionEvent");

            ConversionEvent[] array = new ConversionEvent[] { e1, e2, e3, e4, e5 };

            Assert.AreEqual(e1, ConversionEvent.GetConversionEventByName("ConversionEvent1", array));
            Assert.AreEqual(e2, ConversionEvent.GetConversionEventByName("CONVERSIONEVENT1", array));
            Assert.AreEqual(e3, ConversionEvent.GetConversionEventByName("conversionevent1", array));
            Assert.AreEqual(e4, ConversionEvent.GetConversionEventByName("ConversionEvent2", array));
            Assert.AreEqual(e5, ConversionEvent.GetConversionEventByName("3ConversionEvent", array));
            Assert.AreEqual(null, ConversionEvent.GetConversionEventByName("hoge", array));
        }
コード例 #3
0
        /// <summary>
        /// You will generate event when the specified condition in the <see cref="KiiCorp.Cloud.ABTesting.KiiExperiment"/> has achieved.
        /// ex.) User has signed up, view the message, purchase item, etc.
        /// You need to call <see cref="KiiAnalytics.Upload(KiiEvent)"/> method of KiiAnalyticsSDK to send the event to Kii Analytics Cloud.
        /// </summary>
        /// <remarks>
        /// </remarks>
        /// <returns>KiiEvent represents event.</returns>
        /// <param name="conversionEvent">ConversionEvent to specify which conversionEvent has achieved.</param>
        public KiiEvent EventForConversion(ConversionEvent conversionEvent)
        {
            if (conversionEvent == null)
            {
                throw new ArgumentException("conversionEvent is null");
            }
            if (mParentExperimentStatus != KiiExperimentStatus.RUNNING)
            {
                return(new KiiEvent.NullKiiEvent());
            }
            KiiEvent e = KiiAnalytics.NewEvent(this.mParentExperimentID);

            e ["variationName"]   = this.mName;
            e ["conversionEvent"] = conversionEvent.Name;
            e ["version"]         = this.mParentExperimentVersion;
            return(e);
        }
コード例 #4
0
        public void Test_0006_GetConversionEventByName()
        {
            this.LogIn();
            client.AddResponse(
                200,
                CreateKiiExperimentAsJsonString(id, description, version, status,
                                                variationNameA, eventNameA, percentageA, variableSetA,
                                                variationNameB, eventNameB, percentageB, variableSetB,
                                                variationNameA)
                );
            KiiExperiment   experiment      = KiiExperiment.GetByID(id);
            ConversionEvent conversionEvent = experiment.GetConversionEventByName(eventNameB);

            Assert.AreEqual(experiment.ConversionEvents [1], conversionEvent);

            conversionEvent = experiment.GetConversionEventByName("hoge");
            Assert.IsNull(conversionEvent);
        }
コード例 #5
0
        public void Test_0005_EventForConversionWhenStatusIsTerminated()
        {
            this.LogIn();
            int experimentVersion = 10;

            client.AddResponse(200, CreateKiiExperimentAsJsonString(experimentVersion, KiiExperimentStatus.TERMINATED, "UI-A", "EV-A", "UI-B", "EV-B"));
            KiiExperiment   experiment = KiiExperiment.GetByID("000001");
            Variation       variationA = experiment.Variations[0];
            Variation       variationB = experiment.Variations[1];
            ConversionEvent eventA     = experiment.ConversionEvents[0];
            ConversionEvent eventB     = experiment.ConversionEvents[1];

            KiiEvent kiiEventA = variationA.EventForConversion(eventA);

            Assert.IsInstanceOfType(typeof(KiiEvent.NullKiiEvent), kiiEventA);

            KiiEvent kiiEventB = variationB.EventForConversion(eventB);

            Assert.IsInstanceOfType(typeof(KiiEvent.NullKiiEvent), kiiEventB);
        }
コード例 #6
0
        public void Test_0001_EventForConversion()
        {
            this.LogIn();
            int experimentVersion = 10;

            client.AddResponse(200, CreateKiiExperimentAsJsonString(experimentVersion, KiiExperimentStatus.RUNNING, "UI-A", "EV-A", "UI-B", "EV-B"));
            KiiExperiment   experiment = KiiExperiment.GetByID("000001");
            Variation       variationA = experiment.Variations[0];
            Variation       variationB = experiment.Variations[1];
            ConversionEvent eventA     = experiment.ConversionEvents[0];
            ConversionEvent eventB     = experiment.ConversionEvents[1];

            KiiEvent kiiEventA = variationA.EventForConversion(0);

            Assert.AreEqual(variationA.Name, kiiEventA["variationName"]);
            Assert.AreEqual(eventA.Name, kiiEventA["conversionEvent"]);
            Assert.AreEqual(experimentVersion, kiiEventA["version"]);

            KiiEvent kiiEventB = variationB.EventForConversion(1);

            Assert.AreEqual(variationB.Name, kiiEventB["variationName"]);
            Assert.AreEqual(eventB.Name, kiiEventB["conversionEvent"]);
            Assert.AreEqual(experimentVersion, kiiEventB["version"]);
        }
コード例 #7
0
        /// <summary>
        /// You will generate event when the specified condition in the <see cref="KiiCorp.Cloud.ABTesting.KiiExperiment"/> has achieved.
        /// ex.) User has signed up, view the message, purchase item, etc.
        /// You need to call <see cref="KiiAnalytics.Upload(KiiEvent)"/> method of KiiAnalyticsSDK to send the event to Kii Analytics Cloud.
        /// </summary>
        /// <remarks>
        /// </remarks>
        /// <returns>KiiEvent represents event.</returns>
        /// <param name="conversionEventIndex">Index of conversionEvents array retrieved by <see cref="KiiExperiment.ConversionEvents"/></param>
        public KiiEvent EventForConversion(int conversionEventIndex)
        {
            ConversionEvent conversionEvent = this.mParentExperimentConversionEvents[conversionEventIndex];

            return(this.EventForConversion(conversionEvent));
        }
コード例 #8
0
        /// <summary>
        /// You will generate event when the specified condition in the <see cref="KiiCorp.Cloud.ABTesting.KiiExperiment"/> has achieved.
        /// ex.) User has signed up, view the message, purchase item, etc.
        /// You need to call <see cref="KiiAnalytics.Upload(KiiEvent)"/> method of KiiAnalyticsSDK to send the event to Kii Analytics Cloud.
        /// </summary>
        /// <remarks>
        /// </remarks>
        /// <returns>KiiEvent represents event.</returns>
        /// <param name="conversionEventName">Name of the conversion event.</param>
        public KiiEvent EventForConversion(string conversionEventName)
        {
            ConversionEvent conversionEvent = ConversionEvent.GetConversionEventByName(conversionEventName, this.mParentExperimentConversionEvents);

            return(this.EventForConversion(conversionEvent));
        }
コード例 #9
0
 /// <summary>
 /// Get the Conversion Event by its name.
 /// </summary>
 /// <remarks>
 /// </remarks>
 /// <returns>Conversion Event or null if Experiment does not have conversion having specified name.</returns>
 /// <param name="name">Name of the Conversion Event</param>
 public ConversionEvent GetConversionEventByName(String name)
 {
     return(ConversionEvent.GetConversionEventByName(name, this.mConversionEvents));
 }