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);
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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);
        }