public void TestExample() { var id = new Guid("fd41c918-b88b-4b20-a0a5-a4c32391aaa0"); var timestamp = new DateTimeOffset(new DateTime(2015, 11, 18, 12, 17, 0)); var address = new Uri("mailto:[email protected]"); var mailbox = new Mailbox(address); var actor = new Agent(mailbox, "Project Tin Can API"); var verbUri = new VerbId("http://example.com/xapi/verbs#sent-a-statement"); var verbMap = new LanguageMap(LanguageTag.EnglishUS, "sent"); var verb = new Verb(verbUri, verbMap); var nameMap = new LanguageMap(LanguageTag.EnglishUS, "simple statement"); var descriptionMap = new LanguageMap(LanguageTag.EnglishUS, "A simple Experience API statement. Note that the LRS does not need to have any prior information about the Actor(learner), the verb, or the Activity/ object."); var activityId = new ActivityId("http://example.com/xapi/activity/simplestatement"); var thetype = new Uri("http://adlnet.gov/expapi/activities/media"); var definition = new ActivityDefinition(nameMap, descriptionMap, thetype, FSharpOption <Uri> .None); var activity = new Activity(activityId, definition); var statement = new Statement(actor, verb, activity, id, timestamp: timestamp); Assert.NotNull(statement.Actor); Assert.NotNull(statement.Object); Assert.NotNull(statement.Timestamp); Assert.True(statement.Object is Activity); Assert.Null(statement.Authority); }
public void TestInvalidInit() { var uri = new VerbId("http://www.gowithfloat.com"); var map = new LanguageMap(LanguageTag.EnglishUS, "floated"); Assert.Throws <ArgumentNullException>(() => new Verb(uri, null)); }
public Verb TestValidInit() { var uri = new VerbId("http://www.gowithfloat.com"); var map = new LanguageMap(LanguageTag.EnglishUS, "floated"); return(new Verb(uri, map)); }
public void TestSerializeExample() { // see https://github.com/adlnet/xAPI-Spec/blob/master/xAPI-Data.md#example-3 var expected = FormatJson(@"{ ""id"":""http://example.com/xapi/verbs#defenestrated"", ""display"":{ ""en-US"":""defenestrated"", ""es"" : ""defenestrado"" } }"); var id = new VerbId(new Uri("http://example.com/xapi/verbs#defenestrated")); var display = new LanguageMap(new Dictionary <ILanguageTag, string> { { new LanguageTag(Language.English, Region.UnitedStates), "defenestrated" }, { new LanguageTag(Language.Spanish), "defenestrado" }, }); var verb = new Verb(id, display); var actual = FormatJson(Serialize.Verb(verb)); Assert.Equal(expected, actual); }
/// <summary> /// To the parameter map. /// </summary> /// <param name="version">The version.</param> /// <returns>Dictionary<System.String, System.String>.</returns> public Dictionary <string, string> ToParameterMap(TCAPIVersion version) { var result = new Dictionary <string, string>(); if (Agent != null) { result.Add("agent", Agent.ToJSON(version)); } if (VerbId != null) { result.Add("verb", VerbId.ToString()); } if (ActivityId != null) { result.Add("activity", ActivityId); } if (Registration != null) { result.Add("registration", Registration.Value.ToString()); } if (RelatedActivities != null) { result.Add("related_activities", RelatedActivities.Value.ToString()); } if (RelatedAgents != null) { result.Add("related_agents", RelatedAgents.Value.ToString()); } if (Since != null) { result.Add("since", Since.Value.ToString(ISO_DATE_TIME_FORMAT)); } if (Until != null) { result.Add("until", Until.Value.ToString(ISO_DATE_TIME_FORMAT)); } if (Limit != null) { result.Add("limit", Limit.ToString()); } if (Format != null) { result.Add("format", Format.ToString()); } if (Ascending != null) { result.Add("ascending", Ascending.Value.ToString()); } return(result); }
public void TestDeserializeExample() { var id = new VerbId(new Uri("http://example.com/xapi/verbs#defenestrated")); var display = new LanguageMap(new Dictionary <ILanguageTag, string> { { new LanguageTag(Language.English, Region.UnitedStates), "defenestrated" }, { new LanguageTag(Language.Spanish), "defenestrado" }, }); var expected = new Verb(id, display); // see https://github.com/adlnet/xAPI-Spec/blob/master/xAPI-Data.md#example-3 var jsonString = FormatJson(@"{ ""id"":""http://example.com/xapi/verbs#defenestrated"", ""display"":{ ""en-US"":""defenestrated"", ""es"" : ""defenestrado"" } }"); var actual = Json.Deserialize.ParseVerb(jsonString).Value; Assert.Equal(expected.Id, actual.Id); Assert.Equal(expected.Display, actual.Display); Assert.Equal(expected, actual); var notDisplay = new LanguageMap(new Dictionary <ILanguageTag, string> { { new LanguageTag(Language.English, Region.UnitedStates), "defenestrated" }, }); var notActual = new Verb(id, notDisplay); Assert.Equal(expected.Id, notActual.Id); Assert.NotEqual(expected.Display, notActual.Display); // verb comparison is done using ID only Assert.Equal(expected, notActual); }
public void TestExample() { var uri = new VerbId("http://example.com/xapi/verbs#defenestrated"); var map = new LanguageMap(new Dictionary <ILanguageTag, string> { { new LanguageTag(Language.English, Region.UnitedStates), "defenestrated" }, { new LanguageTag(Language.Spanish, Region.Mexico), "defenestrado" }, }); var verb = new Verb(uri, map); Assert.Equal(uri, verb.Id); Assert.Equal(map, verb.Display); var iverb = verb as IVerb; Assert.Equal(uri, iverb.Id); Assert.Equal(map, iverb.Display); }
/// <summary> /// /// </summary> /// <returns></returns> internal string ToQueryString() { var dictionary = new Dictionary <string, string>(); if (Agent != null) { dictionary.Add("agent", Agent.ToJson()); } if (VerbId != null) { dictionary.Add("verb", VerbId.ToString()); } if (ActivityId != null) { dictionary.Add("activity", ActivityId.ToString()); } if (Registration.HasValue) { dictionary.Add("registration", Registration.Value.ToString()); } if (RelatedActivities.HasValue) { dictionary.Add("related_activities", RelatedActivities.Value ? "true" : "false"); } if (RelatedAgents.HasValue) { dictionary.Add("related_agents", RelatedAgents.Value ? "true" : "false"); } if (Since.HasValue) { dictionary.Add("since", Since.Value.ToString("o")); } if (Until.HasValue) { dictionary.Add("until", Until.Value.ToString("o")); } if (Limit.HasValue) { dictionary.Add("limit", Limit.Value.ToString()); } if (Format.HasValue) { dictionary.Add("format", Format.ToString().ToLower()); } if (Attachments.HasValue) { dictionary.Add("attachments", Attachments.Value ? "true" : "false"); } if (Ascending.HasValue) { dictionary.Add("ascending", Ascending.Value ? "true" : "false"); } if (!dictionary.Any()) { return(string.Empty); } return(string.Concat("?", string.Join("&", dictionary.Select(x => $"{WebUtility.UrlEncode(x.Key)}={WebUtility.UrlEncode(x.Value)}")))); }