public async Task CreateNew_ValidOptionalFields_PostsData() { var name = "My name"; var sourceListId = "My source list id"; var position = "My position"; var labels = new[] { "My label" }; var due = DateTime.Now; var expected = new Card(); var apiCard = new ApiCard(); this.GetDependency <ITrelloRestClient>().Post <ApiCard>("cards", Arg.Is <Dictionary <string, object> >(p => p.ContainsKey("pos") && (string)p["pos"] == position && p.ContainsKey("idLabels") && (string)p["idLabels"] == string.Join(",", labels) && p.ContainsKey("due") && (string)p["due"] == HttpUtility.UrlEncode($"{due:YYYY-MM-ddTHH:mm:ssZ}") && p.ContainsKey("dueComplete") && (string)p["dueComplete"] == "1" )) .Returns(apiCard); this.GetDependency <IMapper>().Map <Card>(apiCard).Returns(expected); var actual = await this.Target.CreateNew(name, BoardId, sourceListId, position, labels, due, true); Assert.AreEqual(expected, actual); }
public async Task CreateNew_ValidRequiredFields_PostsData() { var name = "My name"; var expected = new Card(); var apiCard = new ApiCard(); this.GetDependency <ITrelloRestClient>().Post <ApiCard>("cards", Arg.Is <Dictionary <string, object> >(p => p.ContainsKey("name") && (string)p["name"] == HttpUtility.UrlEncode(name) && p.ContainsKey("idBoard") && (string)p["idBoard"] == BoardId && p.ContainsKey("idList") && (string)p["idList"] == ListId && !p.ContainsKey("pos") && !p.ContainsKey("idLabels") && !p.ContainsKey("due") && !p.ContainsKey("dueComplete") )) .Returns(apiCard); this.GetDependency <IMapper>().Map <Card>(apiCard).Returns(expected); var actual = await this.Target.CreateNew(name, BoardId, ListId); Assert.AreEqual(expected, actual); }
public async Task Update_ValidOptionalFields_PostsData() { var id = "My id"; var name = "My name"; var sourceListId = "My source list id"; var position = "My position"; var labels = new[] { "My label" }; var due = DateTime.Now; var expected = new Card(); var apiCard = new ApiCard(); this.GetDependency <ITrelloRestClient>().Put <ApiCard>($"cards/{id}", Arg.Is <Dictionary <string, object> >(p => p.ContainsKey("pos") && (string)p["pos"] == position && p.ContainsKey("idLabels") && (string)p["idLabels"] == string.Join(",", labels) && p.ContainsKey("due") && (string)p["due"] == $"{due.ToUniversalTime():yyyy-MM-ddTHH:mm:ssZ}" && p.ContainsKey("dueComplete") && (bool)p["dueComplete"] )) .Returns(apiCard); this.GetDependency <IMapper>().Map <Card>(apiCard).Returns(expected); var actual = await this.Target.Update(id, BoardId, sourceListId, name, position, labels, due, true); Assert.AreEqual(expected, actual); }
public async Task GetCards_ValidId_ReturnsRestClientResult() { var apiResult = new ApiCard[0]; var expected = new Card[0]; this.GetDependency <ITrelloRestClient>().Get <ApiCard[]>($"boards/{BoardId}/cards").Returns(apiResult); this.GetDependency <IMapper>().Map <Card[]>(apiResult).Returns(expected); var actual = await this.Target.GetCards(BoardId); Assert.AreEqual(expected, actual); }
public static SharedCard ApiToShared(ApiCard apiCard) { // TODO: Need to figure out Types and Multi-Faced Cards var types = new List <string>(); var subtypes = new List <string>(); if (apiCard.Card_Faces.Count == 0) { var tempType = apiCard.Type_Line.Split(" - ").ToList(); types = tempType[0].Split(' ').ToList(); if (tempType.Count > 1) { subtypes = tempType[1].Split(' ').ToList(); } } return(new SharedCard { Id = apiCard.Oracle_Id, Name = apiCard.Name, Cmc = apiCard.Cmc, Colors = apiCard.Colors, ColorIdentity = apiCard.Color_Identity, ManaCost = apiCard.Mana_Cost, EdhrecRank = apiCard.Edhrec_Rank, OracleText = apiCard.Oracle_Text, Power = apiCard.Power, Toughness = apiCard.Toughness, Loyalty = apiCard.Loyalty, Reserved = apiCard.Reserved, CommanderLegality = apiCard.Legalities.Commander, StandardLegality = apiCard.Legalities.Standard, PioneerLegality = apiCard.Legalities.Pioneer, ModernLegality = apiCard.Legalities.Modern, BrawlLegality = apiCard.Legalities.Brawl, Types = types, Subtypes = subtypes, Faces = apiCard.Card_Faces.Select(f => ApiToShared(f, apiCard.Id)).ToList() }); }
public async Task Update_ValidRequiredFields_PostsData() { var id = "My id"; var expected = new Card(); var apiCard = new ApiCard(); this.GetDependency <ITrelloRestClient>().Put <ApiCard>($"cards/{id}", Arg.Is <Dictionary <string, object> >(p => p.ContainsKey("idBoard") && (string)p["idBoard"] == BoardId && p.ContainsKey("idList") && (string)p["idList"] == ListId && !p.ContainsKey("name") && !p.ContainsKey("pos") && !p.ContainsKey("idLabels") && !p.ContainsKey("due") && !p.ContainsKey("dueComplete") )) .Returns(apiCard); this.GetDependency <IMapper>().Map <Card>(apiCard).Returns(expected); var actual = await this.Target.Update(id, BoardId, ListId); Assert.AreEqual(expected, actual); }