Exemple #1
0
        public void TestCardCoverage()
        {
            //This is to test to ensure the properties exist; this would not be used in practice
            var card = new Card()
            {
                Label        = ""
                , Locked     = false
                , Position   = 1
                , Required   = false
                , Revision   = 0
                , Selectable = false
                , SequenceId = AssignmentUtils.ROOT_SEQUENCE_ID
                , Size       = 1
                , Subdued    = false
                , TemplateId = ""
                , Updated    = ""
                , UpdatedBy  = SkyManager.IntegrationId
            };

            card.SetDefaults();

            Assert.NotNull(card.ToString());
            Assert.NotNull(card.ToJson());

            var cardNew = new CardNew().SetDefaults();

            cardNew.Tags = new List <string>()
            {
                "tag1"
            };
            cardNew.Voice = new List <string>()
            {
                "command"
            };
            Assert.Single(cardNew.Voice);
            Assert.Single(cardNew.Tags);
            Assert.NotNull(cardNew.ToJson());
            Assert.NotNull(cardNew.ToString());

            var cardPatch = new CardPatch().SetDefaults();

            Assert.NotNull(cardPatch.ToJson());
            Assert.NotNull(cardPatch.ToString());


            var cardUpdate = new CardUpdate().SetDefaults();

            Assert.NotNull(cardUpdate.ToJson());
            Assert.NotNull(cardUpdate.ToString());
        }
Exemple #2
0
        //@skydocs.end()

        static async Task ResetCard(Card card)
        {
            //@skydocs.start(cards.update)
            var cardPatch = new CardPatch();

            cardPatch.Add("isDone", false); //Important note: Make sure that the keys (e.g. isDone) are lower case
            cardPatch.Add("component", new ComponentCompletion()
            {
                Completed = false
            });

            var cardUpdateBody   = new Skylight.Api.Assignments.V1.CardRequests.PatchCardRequest(cardPatch, card.AssignmentId, card.SequenceId, card.Id);
            var cardUpdateResult = await SkyManager.ApiClient.ExecuteRequestAsync(cardUpdateBody);

            //Handle the resulting status code appropriately
            switch (cardUpdateResult.StatusCode)
            {
            case System.Net.HttpStatusCode.Forbidden:
                Console.Error.WriteLine("Error updating card: Permission forbidden.");
                throw new Exception("Error updating card.");

            case System.Net.HttpStatusCode.Unauthorized:
                Console.Error.WriteLine("Error updating card: Method call was unauthenticated.");
                throw new Exception("Error updating card.");

            case System.Net.HttpStatusCode.NotFound:
                Console.Error.WriteLine("Error updating card: User not found.");
                throw new Exception("Error updating card.");

            case System.Net.HttpStatusCode.OK:
                Console.WriteLine("Successfully updated card.");
                break;

            default:
                Console.Error.WriteLine("Unhandled card update status code: " + cardUpdateResult.StatusCode);
                throw new Exception("Error updating card.");
            }
            //@skydocs.end()
        }
Exemple #3
0
        public async Task TestPatchCard()
        {
            var assignment   = CreateAssignmentNew();
            var assignmentId = await AssignmentUtils.CreateAssignment(assignment);

            var cardPatch = new CardPatch();

            cardPatch.Add("label", "New Label");
            var patchCardRequest = new PatchCardRequest(cardPatch, assignmentId, AssignmentUtils.ROOT_SEQUENCE_ID, CARD_ID);
            await SkyManager.ApiClient.ExecuteRequestAsync(patchCardRequest); //TODO: If we wanted to do a full integration test, we could get the card and make sure the label has updated

            var getCardRequest = new GetCardRequest(assignmentId, AssignmentUtils.ROOT_SEQUENCE_ID, CARD_ID);

            var getCardResponse = await SkyManager.ApiClient.ExecuteRequestAsync(getCardRequest);

            var returnedCard = getCardResponse.Content;

            Assert.Equal(SkyManager.IntegrationId, returnedCard.UpdatedBy);
            Assert.NotNull(returnedCard.Updated);


            await AssignmentUtils.DeleteAssignment(assignmentId);
        }