From 16faf5eaf9faec254d7d42afb2ca54142c619146 Mon Sep 17 00:00:00 2001 From: Roland Osborne Date: Wed, 23 Feb 2022 15:00:11 -0800 Subject: [PATCH] sync contact profile in app test --- net/server/internal/testApp.go | 55 +++++++++++++++++++----- net/server/internal/ucContactApp_test.go | 28 ++++-------- 2 files changed, 52 insertions(+), 31 deletions(-) diff --git a/net/server/internal/testApp.go b/net/server/internal/testApp.go index d5c45227..84b88dce 100644 --- a/net/server/internal/testApp.go +++ b/net/server/internal/testApp.go @@ -25,12 +25,14 @@ type TestChannel struct { } type TestContactData struct { + token string card Card + profileRevision int64 viewRevision int64 articleRevision int64 channelRevision int64 - detailRevision int64 - profileRevision int64 + cardDetailRevision int64 + cardProfileRevision int64 articles map[string]Article channels map[string]TestChannel offsync bool @@ -38,19 +40,19 @@ type TestContactData struct { func (c *TestContactData) UpdateContact() (err error) { - if c.detailRevision != c.card.Data.DetailRevision { + if c.cardDetailRevision != c.card.Data.DetailRevision { if err = c.UpdateContactCardDetail(); err != nil { return } else { - c.detailRevision = c.card.Data.DetailRevision + c.cardDetailRevision = c.card.Data.DetailRevision } } - if c.profileRevision != c.card.Data.ProfileRevision { + if c.cardProfileRevision != c.card.Data.ProfileRevision { if err = c.UpdateContactCardProfile(); err != nil { return } else { - c.profileRevision = c.card.Data.ProfileRevision + c.cardProfileRevision = c.card.Data.ProfileRevision } } @@ -99,7 +101,20 @@ func (c *TestContactData) UpdateContact() (err error) { } func (c *TestContactData) UpdateContactProfile() (err error) { - return nil + var msg DataMessage + token := c.card.Data.CardProfile.Guid + "." + c.card.Data.CardDetail.Token + params := &TestApiParams{ query: "/profile/message", tokenType: APP_TOKENCONTACT, token: token } + response := &TestApiResponse{ data: &msg } + if err = TestApiRequest(GetProfileMessage, params, response); err != nil { + return + } + params = &TestApiParams{ restType: "PUT", query: "/contact/cards/{cardId}/profile", tokenType: APP_TOKENAPP, token: c.token, + path: map[string]string{ "cardId": c.card.Id }, body: &msg } + response = &TestApiResponse{} + if err = TestApiRequest(SetCardProfile, params, response); err != nil { + return + } + return } func (c *TestContactData) UpdateContactArticle() (err error) { @@ -138,11 +153,27 @@ func (c *TestContactData) UpdateContactChannel() (err error) { } func (c *TestContactData) UpdateContactCardDetail() (err error) { - return nil + var cardDetail CardDetail + params := &TestApiParams{ query: "/contact/cards/{cardId}/detail", tokenType: APP_TOKENAPP, token: c.token, + path: map[string]string{ "cardId": c.card.Id } } + response := &TestApiResponse{ data: &cardDetail } + if err = TestApiRequest(GetCardDetail, params, response); err != nil { + return + } + c.card.Data.CardDetail = &cardDetail + return } func (c *TestContactData) UpdateContactCardProfile() (err error) { - return nil + var cardProfile CardProfile + params := &TestApiParams{ query: "/contact/cards/{cardId}/profile", tokenType: APP_TOKENAPP, token: c.token, + path: map[string]string{ "cardId": c.card.Id } } + response := &TestApiResponse{ data: &cardProfile } + if err = TestApiRequest(GetCardProfile, params, response); err != nil { + return + } + c.card.Data.CardProfile = &cardProfile + return } func NewTestApp() *TestApp { @@ -246,7 +277,8 @@ func (a *TestApp) UpdateCard() (err error) { } else { // set new card contactData := &TestContactData{ card: card, articles: make(map[string]Article), channels: make(map[string]TestChannel), - detailRevision: card.Data.DetailRevision, profileRevision: card.Data.ProfileRevision } + cardDetailRevision: card.Data.DetailRevision, cardProfileRevision: card.Data.ProfileRevision, + profileRevision: card.Data.ProfileRevision, token: a.token } a.contacts[card.Id] = contactData if err = contactData.UpdateContact(); err != nil { contactData.offsync = true @@ -275,7 +307,8 @@ func (a *TestApp) UpdateCard() (err error) { return } contactData := &TestContactData{ card: card, articles: make(map[string]Article), channels: make(map[string]TestChannel), - detailRevision: card.Data.DetailRevision, profileRevision: card.Data.ProfileRevision } + cardDetailRevision: card.Data.DetailRevision, cardProfileRevision: card.Data.ProfileRevision, + profileRevision: card.Data.ProfileRevision, token: a.token } a.contacts[card.Id] = contactData if err = contactData.UpdateContact(); err != nil { contactData.offsync = true diff --git a/net/server/internal/ucContactApp_test.go b/net/server/internal/ucContactApp_test.go index 134730f2..a78ea1fb 100644 --- a/net/server/internal/ucContactApp_test.go +++ b/net/server/internal/ucContactApp_test.go @@ -163,28 +163,16 @@ func TestContactApp(t *testing.T) { return false })) - for i := 0; i < 64; i++ { - // add a new article in contact - article = &Article{} - subject = &Subject{ Data: "subjectdataC", DataType: "subjectdatatypeC" } - params = &TestApiParams{ restType: "POST", query: "/articles", tokenType: APP_TOKENAPP, token: set.C.Token, body: subject } - response = &TestApiResponse{ data: article } - assert.NoError(t, TestApiRequest(AddArticle, params, response)) - articleId = article.Id + // update Bs profile + profileData = &ProfileData{ Name: "contactappname" } + params = &TestApiParams{ restType: "PUT", query: "/profile/data", tokenType: APP_TOKENAPP, token: set.B.Token, body: profileData } + response = &TestApiResponse{} + assert.NoError(t, TestApiRequest(SetProfile, params, response)) - // share article - article = &Article{} - params = &TestApiParams{ restType: "POST", query: "/articles/{articleId}/groups/{groupId}", tokenType: APP_TOKENAPP, token: set.C.Token, - path: map[string]string{ "articleId": articleId, "groupId": set.C.A.GroupId }} - response = &TestApiResponse{ data: article } - assert.NoError(t, TestApiRequest(SetArticleGroup, params, response)) - } - - // wait for + // wait for assert.NoError(t, app.WaitFor(func(testApp *TestApp)bool { - contact, contactSet := testApp.contacts[set.A.C.CardId] - if contactSet { - if len(contact.articles) == 64 { + for _, contact := range testApp.contacts { + if contact.card.Data.CardProfile.Name == "contactappname" { return true } }