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); }
public void Test_0005_GetVariationByName() { this.LogIn(); client.AddResponse( 200, CreateKiiExperimentAsJsonString(id, description, version, status, variationNameA, eventNameA, percentageA, variableSetA, variationNameB, eventNameB, percentageB, variableSetB, variationNameA) ); KiiExperiment experiment = KiiExperiment.GetByID(id); Variation variation = experiment.GetVariationByName(variationNameB); Assert.AreEqual(experiment.Variations[1], variation); variation = experiment.GetVariationByName("hoge"); Assert.IsNull(variation); }
/// <summary> /// Creates instance of KiiExperiment from ApiResponse. /// </summary> /// <remarks> /// </remarks> /// <returns>The instance of KiiExperiment.</returns> /// <param name="response">API response.</param> private static KiiExperiment CreateFromResponse(ApiResponse response) { KiiExperiment experiment = null; try { JsonObject json = new JsonObject(response.Body); experiment = new KiiExperiment(); experiment.mId = json.GetString("_id"); experiment.mDescription = json.OptString("description", null); experiment.mVersion = json.GetInt("version"); experiment.mStatus = ParseStatus(json); // parse conversionEvents JsonArray conversionEventsJson = json.GetJsonArray("conversionEvents"); List <ConversionEvent> conversionEventList = new List <ConversionEvent>(); for (int i = 0; i < conversionEventsJson.Length(); i++) { JsonObject conversionEventJson = conversionEventsJson.GetJsonObject(i); conversionEventList.Add(new ConversionEvent(conversionEventJson.GetString("name"))); } experiment.mConversionEvents = conversionEventList.ToArray(); // parse variations JsonArray variationsJson = json.GetJsonArray("variations"); List <Variation> variationList = new List <Variation>(); for (int i = 0; i < variationsJson.Length(); i++) { JsonObject variationJson = variationsJson.GetJsonObject(i); string varName = variationJson.GetString("name"); int percentage = variationJson.GetInt("percentage"); JsonObject test = variationJson.GetJsonObject("variableSet"); variationList.Add(new Variation(experiment, varName, percentage, test)); } experiment.mVariations = variationList.ToArray(); string chosenVariationName = json.OptString("chosenVariation", null); if (!Utils.IsEmpty(chosenVariationName)) { experiment.mChosenVariation = experiment.GetVariationByName(chosenVariationName); } return(experiment); } catch (Exception e) { throw new IllegalKiiBaseObjectFormatException(e.Message); } }