public async Task Test_CrewObjectJsonWriter_WriteObject_JsonWriter_Exceptions() { var traktJsonWriter = new CrewObjectJsonWriter(); ITraktCrew traktCrew = new TraktCrew(); Func <Task> action = () => traktJsonWriter.WriteObjectAsync(default(JsonTextWriter), traktCrew); await action.Should().ThrowAsync <ArgumentNullException>(); }
public void Test_CrewObjectJsonWriter_WriteObject_StringWriter_Exceptions() { var traktJsonWriter = new CrewObjectJsonWriter(); ITraktCrew traktCrew = new TraktCrew(); Func <Task <string> > action = () => traktJsonWriter.WriteObjectAsync(default(StringWriter), traktCrew); action.Should().Throw <ArgumentNullException>(); }
public async Task Test_CrewObjectJsonWriter_WriteObject_StringWriter_Empty() { ITraktCrew traktCrew = new TraktCrew(); using (var stringWriter = new StringWriter()) { var traktJsonWriter = new CrewObjectJsonWriter(); string json = await traktJsonWriter.WriteObjectAsync(stringWriter, traktCrew); json.Should().Be(@"{}"); } }
public async Task Test_CrewObjectJsonWriter_WriteObject_JsonWriter_Empty() { ITraktCrew traktCrew = new TraktCrew(); using (var stringWriter = new StringWriter()) using (var jsonWriter = new JsonTextWriter(stringWriter)) { var traktJsonWriter = new CrewObjectJsonWriter(); await traktJsonWriter.WriteObjectAsync(jsonWriter, traktCrew); stringWriter.ToString().Should().Be(@"{}"); } }
public void TestTraktCrewDefaultConstructor() { var crew = new TraktCrew(); crew.Production.Should().BeNull(); crew.Art.Should().BeNull(); crew.Crew.Should().BeNull(); crew.CostumeAndMakeup.Should().BeNull(); crew.Directing.Should().BeNull(); crew.Writing.Should().BeNull(); crew.Sound.Should().BeNull(); crew.Camera.Should().BeNull(); crew.Lighting.Should().BeNull(); crew.VisualEffects.Should().BeNull(); crew.Editing.Should().BeNull(); }
public async Task Test_CrewObjectJsonWriter_WriteObject_JsonWriter_Only_Art_Property() { ITraktCrew traktCrew = new TraktCrew { Art = new List <TraktCrewMember> { new TraktCrewMember { Jobs = new List <string> { "Art Member" }, Person = new TraktPerson { Name = "Bryan Cranston", Ids = new TraktPersonIds { Trakt = 297737U, Slug = "bryan-cranston", Imdb = "nm0186505", Tmdb = 17419U, TvRage = 1797U } } } } }; using (var stringWriter = new StringWriter()) using (var jsonWriter = new JsonTextWriter(stringWriter)) { var traktJsonWriter = new CrewObjectJsonWriter(); await traktJsonWriter.WriteObjectAsync(jsonWriter, traktCrew); stringWriter.ToString().Should().Be(@"{""art"":[{""jobs"":[""Art Member""]," + @"""person"":{""name"":""Bryan Cranston""," + @"""ids"":{""trakt"":297737,""slug"":""bryan-cranston""," + @"""imdb"":""nm0186505"",""tmdb"":17419,""tvrage"":1797}}}]}"); } }
public async Task Test_CrewObjectJsonWriter_WriteObject_StringWriter_Only_CostumeAndMakeup_Property() { ITraktCrew traktCrew = new TraktCrew { CostumeAndMakeup = new List <TraktCrewMember> { new TraktCrewMember { Jobs = new List <string> { "CostumeAndMakeup Member" }, Person = new TraktPerson { Name = "Bryan Cranston", Ids = new TraktPersonIds { Trakt = 297737U, Slug = "bryan-cranston", Imdb = "nm0186505", Tmdb = 17419U, TvRage = 1797U } } } } }; using (var stringWriter = new StringWriter()) { var traktJsonWriter = new CrewObjectJsonWriter(); string json = await traktJsonWriter.WriteObjectAsync(stringWriter, traktCrew); json.Should().Be(@"{""costume & make-up"":[{""jobs"":[""CostumeAndMakeup Member""]," + @"""person"":{""name"":""Bryan Cranston""," + @"""ids"":{""trakt"":297737,""slug"":""bryan-cranston""," + @"""imdb"":""nm0186505"",""tmdb"":17419,""tvrage"":1797}}}]}"); } }
public async Task Test_CrewObjectJsonWriter_WriteObject_JsonWriter_Complete() { ITraktCrew traktCrew = new TraktCrew { Production = new List <TraktCrewMember> { new TraktCrewMember { Jobs = new List <string> { "Production Member" }, Person = new TraktPerson { Name = "Bryan Cranston", Ids = new TraktPersonIds { Trakt = 297737U, Slug = "bryan-cranston", Imdb = "nm0186505", Tmdb = 17419U, TvRage = 1797U } } } }, Art = new List <TraktCrewMember> { new TraktCrewMember { Jobs = new List <string> { "Art Member" }, Person = new TraktPerson { Name = "Bryan Cranston", Ids = new TraktPersonIds { Trakt = 297737U, Slug = "bryan-cranston", Imdb = "nm0186505", Tmdb = 17419U, TvRage = 1797U } } } }, Crew = new List <TraktCrewMember> { new TraktCrewMember { Jobs = new List <string> { "Crew Member" }, Person = new TraktPerson { Name = "Bryan Cranston", Ids = new TraktPersonIds { Trakt = 297737U, Slug = "bryan-cranston", Imdb = "nm0186505", Tmdb = 17419U, TvRage = 1797U } } } }, CostumeAndMakeup = new List <TraktCrewMember> { new TraktCrewMember { Jobs = new List <string> { "CostumeAndMakeup Member" }, Person = new TraktPerson { Name = "Bryan Cranston", Ids = new TraktPersonIds { Trakt = 297737U, Slug = "bryan-cranston", Imdb = "nm0186505", Tmdb = 17419U, TvRage = 1797U } } } }, Directing = new List <TraktCrewMember> { new TraktCrewMember { Jobs = new List <string> { "Directing Member" }, Person = new TraktPerson { Name = "Bryan Cranston", Ids = new TraktPersonIds { Trakt = 297737U, Slug = "bryan-cranston", Imdb = "nm0186505", Tmdb = 17419U, TvRage = 1797U } } } }, Writing = new List <TraktCrewMember> { new TraktCrewMember { Jobs = new List <string> { "Writing Member" }, Person = new TraktPerson { Name = "Bryan Cranston", Ids = new TraktPersonIds { Trakt = 297737U, Slug = "bryan-cranston", Imdb = "nm0186505", Tmdb = 17419U, TvRage = 1797U } } } }, Sound = new List <TraktCrewMember> { new TraktCrewMember { Jobs = new List <string> { "Sound Member" }, Person = new TraktPerson { Name = "Bryan Cranston", Ids = new TraktPersonIds { Trakt = 297737U, Slug = "bryan-cranston", Imdb = "nm0186505", Tmdb = 17419U, TvRage = 1797U } } } }, Camera = new List <TraktCrewMember> { new TraktCrewMember { Jobs = new List <string> { "Camera Member" }, Person = new TraktPerson { Name = "Bryan Cranston", Ids = new TraktPersonIds { Trakt = 297737U, Slug = "bryan-cranston", Imdb = "nm0186505", Tmdb = 17419U, TvRage = 1797U } } } }, Lighting = new List <TraktCrewMember> { new TraktCrewMember { Jobs = new List <string> { "Lighting Member" }, Person = new TraktPerson { Name = "Bryan Cranston", Ids = new TraktPersonIds { Trakt = 297737U, Slug = "bryan-cranston", Imdb = "nm0186505", Tmdb = 17419U, TvRage = 1797U } } } }, VisualEffects = new List <TraktCrewMember> { new TraktCrewMember { Jobs = new List <string> { "VisualEffects Member" }, Person = new TraktPerson { Name = "Bryan Cranston", Ids = new TraktPersonIds { Trakt = 297737U, Slug = "bryan-cranston", Imdb = "nm0186505", Tmdb = 17419U, TvRage = 1797U } } } }, Editing = new List <TraktCrewMember> { new TraktCrewMember { Jobs = new List <string> { "Editing Member" }, Person = new TraktPerson { Name = "Bryan Cranston", Ids = new TraktPersonIds { Trakt = 297737U, Slug = "bryan-cranston", Imdb = "nm0186505", Tmdb = 17419U, TvRage = 1797U } } } } }; using (var stringWriter = new StringWriter()) using (var jsonWriter = new JsonTextWriter(stringWriter)) { var traktJsonWriter = new CrewObjectJsonWriter(); await traktJsonWriter.WriteObjectAsync(jsonWriter, traktCrew); stringWriter.ToString().Should().Be(@"{""production"":[{""jobs"":[""Production Member""]," + @"""person"":{""name"":""Bryan Cranston""," + @"""ids"":{""trakt"":297737,""slug"":""bryan-cranston""," + @"""imdb"":""nm0186505"",""tmdb"":17419,""tvrage"":1797}}}]," + @"""art"":[{""jobs"":[""Art Member""]," + @"""person"":{""name"":""Bryan Cranston""," + @"""ids"":{""trakt"":297737,""slug"":""bryan-cranston""," + @"""imdb"":""nm0186505"",""tmdb"":17419,""tvrage"":1797}}}]," + @"""crew"":[{""jobs"":[""Crew Member""]," + @"""person"":{""name"":""Bryan Cranston""," + @"""ids"":{""trakt"":297737,""slug"":""bryan-cranston""," + @"""imdb"":""nm0186505"",""tmdb"":17419,""tvrage"":1797}}}]," + @"""costume & make-up"":[{""jobs"":[""CostumeAndMakeup Member""]," + @"""person"":{""name"":""Bryan Cranston""," + @"""ids"":{""trakt"":297737,""slug"":""bryan-cranston""," + @"""imdb"":""nm0186505"",""tmdb"":17419,""tvrage"":1797}}}]," + @"""directing"":[{""jobs"":[""Directing Member""]," + @"""person"":{""name"":""Bryan Cranston""," + @"""ids"":{""trakt"":297737,""slug"":""bryan-cranston""," + @"""imdb"":""nm0186505"",""tmdb"":17419,""tvrage"":1797}}}]," + @"""writing"":[{""jobs"":[""Writing Member""]," + @"""person"":{""name"":""Bryan Cranston""," + @"""ids"":{""trakt"":297737,""slug"":""bryan-cranston""," + @"""imdb"":""nm0186505"",""tmdb"":17419,""tvrage"":1797}}}]," + @"""sound"":[{""jobs"":[""Sound Member""]," + @"""person"":{""name"":""Bryan Cranston""," + @"""ids"":{""trakt"":297737,""slug"":""bryan-cranston""," + @"""imdb"":""nm0186505"",""tmdb"":17419,""tvrage"":1797}}}]," + @"""camera"":[{""jobs"":[""Camera Member""]," + @"""person"":{""name"":""Bryan Cranston""," + @"""ids"":{""trakt"":297737,""slug"":""bryan-cranston""," + @"""imdb"":""nm0186505"",""tmdb"":17419,""tvrage"":1797}}}]," + @"""lighting"":[{""jobs"":[""Lighting Member""]," + @"""person"":{""name"":""Bryan Cranston""," + @"""ids"":{""trakt"":297737,""slug"":""bryan-cranston""," + @"""imdb"":""nm0186505"",""tmdb"":17419,""tvrage"":1797}}}]," + @"""visual effects"":[{""jobs"":[""VisualEffects Member""]," + @"""person"":{""name"":""Bryan Cranston""," + @"""ids"":{""trakt"":297737,""slug"":""bryan-cranston""," + @"""imdb"":""nm0186505"",""tmdb"":17419,""tvrage"":1797}}}]," + @"""editing"":[{""jobs"":[""Editing Member""]," + @"""person"":{""name"":""Bryan Cranston""," + @"""ids"":{""trakt"":297737,""slug"":""bryan-cranston""," + @"""imdb"":""nm0186505"",""tmdb"":17419,""tvrage"":1797}}}]}"); } }
public override async Task <ITraktCrew> ReadObjectAsync(JsonTextReader jsonReader, CancellationToken cancellationToken = default) { if (jsonReader == null) { return(await Task.FromResult(default(ITraktCrew))); } if (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.StartObject) { var crewMembersReader = new CrewMemberArrayJsonReader(); ITraktCrew traktCrew = new TraktCrew(); while (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.PropertyName) { var propertyName = jsonReader.Value.ToString(); switch (propertyName) { case JsonProperties.CREW_PROPERTY_NAME_PRODUCTION: traktCrew.Production = await crewMembersReader.ReadArrayAsync(jsonReader, cancellationToken); break; case JsonProperties.CREW_PROPERTY_NAME_ART: traktCrew.Art = await crewMembersReader.ReadArrayAsync(jsonReader, cancellationToken); break; case JsonProperties.CREW_PROPERTY_NAME_CREW: traktCrew.Crew = await crewMembersReader.ReadArrayAsync(jsonReader, cancellationToken); break; case JsonProperties.CREW_PROPERTY_NAME_COSTUME_AND_MAKE_UP: traktCrew.CostumeAndMakeup = await crewMembersReader.ReadArrayAsync(jsonReader, cancellationToken); break; case JsonProperties.CREW_PROPERTY_NAME_DIRECTING: traktCrew.Directing = await crewMembersReader.ReadArrayAsync(jsonReader, cancellationToken); break; case JsonProperties.CREW_PROPERTY_NAME_WRITING: traktCrew.Writing = await crewMembersReader.ReadArrayAsync(jsonReader, cancellationToken); break; case JsonProperties.CREW_PROPERTY_NAME_SOUND: traktCrew.Sound = await crewMembersReader.ReadArrayAsync(jsonReader, cancellationToken); break; case JsonProperties.CREW_PROPERTY_NAME_CAMERA: traktCrew.Camera = await crewMembersReader.ReadArrayAsync(jsonReader, cancellationToken); break; case JsonProperties.CREW_PROPERTY_NAME_LIGHTING: traktCrew.Lighting = await crewMembersReader.ReadArrayAsync(jsonReader, cancellationToken); break; case JsonProperties.CREW_PROPERTY_NAME_VISUAL_EFFECTS: traktCrew.VisualEffects = await crewMembersReader.ReadArrayAsync(jsonReader, cancellationToken); break; case JsonProperties.CREW_PROPERTY_NAME_EDITING: traktCrew.Editing = await crewMembersReader.ReadArrayAsync(jsonReader, cancellationToken); break; default: await JsonReaderHelper.ReadAndIgnoreInvalidContentAsync(jsonReader, cancellationToken); break; } } return(traktCrew); } return(await Task.FromResult(default(ITraktCrew))); }