Skip to content

Commit 81ae8bf

Browse files
Jake NobleJake Noble
authored andcommitted
added etag to save doc and corresponding tests
1 parent f428e5e commit 81ae8bf

File tree

3 files changed

+126
-2
lines changed

3 files changed

+126
-2
lines changed

src/main/java/com/rusticisoftware/tincan/RemoteLRS.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -301,6 +301,10 @@ private LRSResponse saveDocument(String resource, Map<String, String> queryParam
301301
request.setQueryParams(queryParams);
302302
request.setContentType(document.getContentType());
303303
request.setContent(document.getContent());
304+
if(document.getEtag() != null) {
305+
request.setHeaders(new HashMap<String, String>());
306+
request.getHeaders().put("If-Match", document.getEtag());
307+
}
304308

305309
HTTPResponse response = makeSyncRequest(request);
306310

src/main/java/com/rusticisoftware/tincan/http/HTTPResponse.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ public String getContent() {
4646
}
4747

4848
public String getContentType() { return this.getHeader("Content-Type"); }
49-
public String getEtag() { return this.getHeader("Etag"); }
49+
public String getEtag() { return this.getHeader("ETag"); }
5050
public DateTime getLastModified() {
5151
DateTimeFormatter RFC1123_DATE_TIME_FORMATTER =
5252
DateTimeFormat.forPattern("EEE, dd MMM yyyy HH:mm:ss 'GMT'").withZoneUTC();

src/test/java/com/rusticisoftware/tincan/RemoteLRSTest.java

Lines changed: 121 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -371,7 +371,20 @@ public void testRetrieveStateIds() throws Exception
371371
@Test
372372
public void testRetrieveState() throws Exception
373373
{
374+
LRSResponse clear = lrs.clearState(activity, agent, null);
375+
Assert.assertTrue(clear.getSuccess());
376+
377+
StateDocument doc = new StateDocument();
378+
doc.setActivity(activity);
379+
doc.setAgent(agent);
380+
doc.setId("test");
381+
doc.setContent("Test value".getBytes("UTF-8"));
382+
383+
LRSResponse save = lrs.saveState(doc);
384+
Assert.assertTrue(save.getSuccess());
385+
374386
StateLRSResponse lrsRes = lrs.retrieveState("test", activity, agent, null);
387+
Assert.assertEquals("\"C140F82CB70E3884AD729B5055B7EAA81C795F1F\"", lrsRes.getContent().getEtag());
375388
Assert.assertTrue(lrsRes.getSuccess());
376389
}
377390

@@ -388,6 +401,31 @@ public void testSaveState() throws Exception
388401
Assert.assertTrue(lrsRes.getSuccess());
389402
}
390403

404+
@Test
405+
public void testOverwriteState() throws Exception
406+
{
407+
LRSResponse clear = lrs.clearState(activity, agent, null);
408+
Assert.assertTrue(clear.getSuccess());
409+
410+
StateDocument doc = new StateDocument();
411+
doc.setActivity(activity);
412+
doc.setAgent(agent);
413+
doc.setId("test");
414+
doc.setContent("Test value".getBytes("UTF-8"));
415+
416+
LRSResponse save = lrs.saveState(doc);
417+
Assert.assertTrue(save.getSuccess());
418+
419+
StateLRSResponse retrieve = lrs.retrieveState("test", activity, agent, null);
420+
Assert.assertTrue(retrieve.getSuccess());
421+
422+
doc.setEtag(retrieve.getContent().getEtag());
423+
doc.setId("testing");
424+
doc.setActivity(parent);
425+
LRSResponse lrsResp = lrs.saveState(doc);
426+
Assert.assertTrue(lrsResp.getSuccess());
427+
}
428+
391429
@Test
392430
public void testDeleteState() throws Exception
393431
{
@@ -417,7 +455,20 @@ public void testRetrieveActivityProfileIds() throws Exception
417455
@Test
418456
public void testRetrieveActivityProfile() throws Exception
419457
{
458+
ActivityProfileDocument doc = new ActivityProfileDocument();
459+
doc.setActivity(activity);
460+
doc.setId("test");
461+
462+
LRSResponse clear = lrs.deleteActivityProfile(doc);
463+
Assert.assertTrue(clear.getSuccess());
464+
465+
doc.setContent("Test value2".getBytes("UTF-8"));
466+
467+
LRSResponse save = lrs.saveActivityProfile(doc);
468+
Assert.assertTrue(save.getSuccess());
469+
420470
ActivityProfileLRSResponse lrsRes = lrs.retrieveActivityProfile("test", activity);
471+
Assert.assertEquals("\"6E6E6C11D7E0BFFE0369873A2A5FD751AB2EA64F\"", lrsRes.getContent().getEtag());
421472
Assert.assertTrue(lrsRes.getSuccess());
422473
}
423474

@@ -427,12 +478,42 @@ public void testSaveActivityProfile() throws Exception
427478
ActivityProfileDocument doc = new ActivityProfileDocument();
428479
doc.setActivity(activity);
429480
doc.setId("test");
430-
doc.setContent("Test value".getBytes("UTF-8"));
481+
482+
LRSResponse clear = lrs.deleteActivityProfile(doc);
483+
Assert.assertTrue(clear.getSuccess());
484+
485+
doc.setContent("Test value2".getBytes("UTF-8"));
431486

432487
LRSResponse lrsRes = lrs.saveActivityProfile(doc);
433488
Assert.assertTrue(lrsRes.getSuccess());
434489
}
435490

491+
@Test
492+
public void testOverwriteActivityProfile() throws Exception
493+
{
494+
ActivityProfileDocument doc = new ActivityProfileDocument();
495+
doc.setActivity(activity);
496+
doc.setId("test");
497+
498+
LRSResponse clear = lrs.deleteActivityProfile(doc);
499+
Assert.assertTrue(clear.getSuccess());
500+
501+
doc.setContent("Test value2".getBytes("UTF-8"));
502+
503+
LRSResponse save = lrs.saveActivityProfile(doc);
504+
Assert.assertTrue(save.getSuccess());
505+
506+
ActivityProfileLRSResponse retrieve = lrs.retrieveActivityProfile("test", activity);
507+
Assert.assertTrue(retrieve.getSuccess());
508+
509+
doc.setEtag(retrieve.getContent().getEtag());
510+
doc.setId("test2");
511+
doc.setContent("Test value3".getBytes("UTF-8"));
512+
513+
LRSResponse lrsResp = lrs.saveActivityProfile(doc);
514+
Assert.assertTrue(lrsResp.getSuccess());
515+
}
516+
436517
@Test
437518
public void testDeleteActivityProfile() throws Exception
438519
{
@@ -454,7 +535,20 @@ public void testRetrieveAgentProfileIds() throws Exception
454535
@Test
455536
public void testRetrieveAgentProfile() throws Exception
456537
{
538+
AgentProfileDocument doc = new AgentProfileDocument();
539+
doc.setAgent(agent);
540+
doc.setId("test");
541+
542+
LRSResponse clear = lrs.deleteAgentProfile(doc);
543+
Assert.assertTrue(clear.getSuccess());
544+
545+
doc.setContent("Test value4".getBytes("UTF-8"));
546+
547+
LRSResponse save = lrs.saveAgentProfile(doc);
548+
Assert.assertTrue(save.getSuccess());
549+
457550
AgentProfileLRSResponse lrsRes = lrs.retrieveAgentProfile("test", agent);
551+
Assert.assertEquals("\"DA16D3E0CBD55E0F13558AD0ECFD2605E2238C71\"", lrsRes.getContent().getEtag());
458552
Assert.assertTrue(lrsRes.getSuccess());
459553
}
460554

@@ -470,6 +564,32 @@ public void testSaveAgentProfile() throws Exception
470564
Assert.assertTrue(lrsRes.getSuccess());
471565
}
472566

567+
@Test
568+
public void testOverwriteAgentProfile() throws Exception
569+
{
570+
AgentProfileDocument doc = new AgentProfileDocument();
571+
doc.setAgent(agent);
572+
doc.setId("test");
573+
574+
LRSResponse clear = lrs.deleteAgentProfile(doc);
575+
Assert.assertTrue(clear.getSuccess());
576+
577+
doc.setContent("Test value4".getBytes("UTF-8"));
578+
579+
LRSResponse save = lrs.saveAgentProfile(doc);
580+
Assert.assertTrue(save.getSuccess());
581+
582+
AgentProfileLRSResponse retrieve = lrs.retrieveAgentProfile("test", agent);
583+
Assert.assertTrue(retrieve.getSuccess());
584+
585+
doc.setEtag(retrieve.getContent().getEtag());
586+
doc.setId("test2");
587+
doc.setContent("Test value5".getBytes("UTF-8"));
588+
589+
LRSResponse lrsResp = lrs.saveAgentProfile(doc);
590+
Assert.assertTrue(lrsResp.getSuccess());
591+
}
592+
473593
@Test
474594
public void testDeleteAgentProfile() throws Exception
475595
{

0 commit comments

Comments
 (0)