From 22315929a2a9ba4cb2670d9ae956672b5e35811b Mon Sep 17 00:00:00 2001 From: Michael Elson Date: Sat, 20 Sep 2014 14:56:48 -0700 Subject: [PATCH 01/11] add build TSO properties --- build.TSO.properties | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 build.TSO.properties diff --git a/build.TSO.properties b/build.TSO.properties new file mode 100644 index 0000000..4c51aa4 --- /dev/null +++ b/build.TSO.properties @@ -0,0 +1,11 @@ +## build.properties +sf.username = michael+cidemotso@codescience.com +sf.password = Demo1234UG4uJHea35Jd5ReWH6mSSKSC +sf.serverurl = https://login.salesforce.com +sf.maxPoll = 600 + +## settings to change in branch properties +## copy the build.master.properties to build.[branch].properties +sf.runallTests = true +sf.checkOnly = true +build.cmd = DeployAndRunAllTests \ No newline at end of file From 539b37ff28478b9c32a9e74765d39c0360958226 Mon Sep 17 00:00:00 2001 From: Michael Elson Date: Sat, 20 Sep 2014 15:24:21 -0700 Subject: [PATCH 02/11] add build QA properties --- build.QA.properties | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 build.QA.properties diff --git a/build.QA.properties b/build.QA.properties new file mode 100644 index 0000000..4885f93 --- /dev/null +++ b/build.QA.properties @@ -0,0 +1,11 @@ +## build.properties +sf.username = michael+cidf14qa@codescience.com +sf.password = Demo1234P7GZKh3TeryIdilHN3xHorUL +sf.serverurl = https://login.salesforce.com +sf.maxPoll = 600 + +## settings to change in branch properties +## copy the build.master.properties to build.[branch].properties +sf.runallTests = true +sf.checkOnly = true +build.cmd = DeployAndRunAllTests \ No newline at end of file From 1d969e247a1f71bb72efdedda4e8815c48f4ace3 Mon Sep 17 00:00:00 2001 From: Michael Elson Date: Sat, 20 Sep 2014 15:32:36 -0700 Subject: [PATCH 03/11] add build dev.branch1 properties --- build.dev.branch1.properties | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 build.dev.branch1.properties diff --git a/build.dev.branch1.properties b/build.dev.branch1.properties new file mode 100644 index 0000000..a21b252 --- /dev/null +++ b/build.dev.branch1.properties @@ -0,0 +1,11 @@ +## build.properties +sf.username = michael+cidf14dev1@codescience.com +sf.password = Demo12341LXOl6SRW63IDnQct7aiI6Au +sf.serverurl = https://login.salesforce.com +sf.maxPoll = 600 + +## settings to change in branch properties +## copy the build.master.properties to build.[branch].properties +sf.runallTests = true +sf.checkOnly = true +build.cmd = DeployAndRunAllTests \ No newline at end of file From 7dc5bd64eec9c531f48beb1f95e3d8965378b858 Mon Sep 17 00:00:00 2001 From: Michael Elson Date: Sat, 20 Sep 2014 17:23:48 -0700 Subject: [PATCH 04/11] add initial feature for realtime data updates from firebase.io data --- src/classes/InventoryRealTime.cls | 51 +++++++++++++++++++ src/classes/InventoryRealTime.cls-meta.xml | 4 ++ src/classes/InventoryRealTimeMock.cls | 18 +++++++ .../InventoryRealTimeMock.cls-meta.xml | 4 ++ src/classes/InventoryRealTimeTest.cls | 32 ++++++++++++ .../InventoryRealTimeTest.cls-meta.xml | 4 ++ 6 files changed, 113 insertions(+) create mode 100644 src/classes/InventoryRealTime.cls create mode 100644 src/classes/InventoryRealTime.cls-meta.xml create mode 100644 src/classes/InventoryRealTimeMock.cls create mode 100644 src/classes/InventoryRealTimeMock.cls-meta.xml create mode 100644 src/classes/InventoryRealTimeTest.cls create mode 100644 src/classes/InventoryRealTimeTest.cls-meta.xml diff --git a/src/classes/InventoryRealTime.cls b/src/classes/InventoryRealTime.cls new file mode 100644 index 0000000..b5e0bc5 --- /dev/null +++ b/src/classes/InventoryRealTime.cls @@ -0,0 +1,51 @@ +public with sharing class InventoryRealTime { + + public static Inventory UpdateInventory() + { + HttpRequest req = new HttpRequest(); + String endpoint = 'https://ci-df14-warehouse.firebaseio.com/Inventory.json'; + req.setEndpoint(endpoint); + req.setMethod('GET'); + Http h = new Http(); + HttpResponse res = h.send(req); + if(res.getStatusCode() == 200){ + if(res.getBody() != null && res.getBody() != '') + { + InventoryRealTime.Inventory inventory = (InventoryRealTime.Inventory)JSON.deserialize(res.getBody(), InventoryRealTime.Inventory.class); + system.debug('inventory : ' + inventory); + if(inventory!=null) { + List merchandises = [SELECT Id, Name, Price__c, Quantity__c FROM Merchandise__c]; + for(Merchandise__c merchandise : merchandises) { + for(Merchandise realTimeInventoryMerchanise : inventory.RealTimeInventory) { + system.debug('name :'+realTimeInventoryMerchanise.name); + if(merchandise.Name == realTimeInventoryMerchanise.name) { + merchandise.Price__c = realTimeInventoryMerchanise.price; + merchandise.Quantity__c = realTimeInventoryMerchanise.qty; + } + } + } + update merchandises; + return inventory; + } + } + } + return null; + } + + public class Inventory + { + public Merchandise[] RealTimeInventory; + } + + public class Merchandise + { + public String name; + public Decimal price; + public Integer qty; + public Merchandise(String name, Decimal price, Integer qty){ + this.name = name; + this.price = price; + this.qty = qty; + } + } +} \ No newline at end of file diff --git a/src/classes/InventoryRealTime.cls-meta.xml b/src/classes/InventoryRealTime.cls-meta.xml new file mode 100644 index 0000000..62b0775 --- /dev/null +++ b/src/classes/InventoryRealTime.cls-meta.xml @@ -0,0 +1,4 @@ + + + 28.0 + \ No newline at end of file diff --git a/src/classes/InventoryRealTimeMock.cls b/src/classes/InventoryRealTimeMock.cls new file mode 100644 index 0000000..47a5445 --- /dev/null +++ b/src/classes/InventoryRealTimeMock.cls @@ -0,0 +1,18 @@ +public class InventoryRealTimeMock { + public class UpdateInventoryResponse implements HttpCalloutMock{ + public HTTPResponse respond(HTTPRequest req) { + + HttpResponse res = new HttpResponse(); + res.setHeader('Content-Type', 'application/json'); + InventoryRealTime.Inventory inventory = new InventoryRealTime.Inventory(); + inventory.RealTimeInventory = new InventoryRealTime.Merchandise[]{ + new InventoryRealTime.Merchandise('Desktop', 599.99, 200), + new InventoryRealTime.Merchandise('Server', 1999.99, 300) + }; + String responseJSON = JSON.serialize(inventory); + res.setBody(responseJSON); + res.setStatusCode(200); + return res; + } + } +} \ No newline at end of file diff --git a/src/classes/InventoryRealTimeMock.cls-meta.xml b/src/classes/InventoryRealTimeMock.cls-meta.xml new file mode 100644 index 0000000..62b0775 --- /dev/null +++ b/src/classes/InventoryRealTimeMock.cls-meta.xml @@ -0,0 +1,4 @@ + + + 28.0 + \ No newline at end of file diff --git a/src/classes/InventoryRealTimeTest.cls b/src/classes/InventoryRealTimeTest.cls new file mode 100644 index 0000000..ca95ccd --- /dev/null +++ b/src/classes/InventoryRealTimeTest.cls @@ -0,0 +1,32 @@ +@isTest +private class InventoryRealTimeTest { + + @isTest static void test_UpdateInventory() { + + Merchandise__c merchandise1 = AddMerchandise('Desktop', 599.99, 100); + Merchandise__c merchandise2 = AddMerchandise('Server', 1999.99, 200); + + Test.startTest(); + Test.setMock(HttpCalloutMock.class, new InventoryRealTimeMock.UpdateInventoryResponse()); + InventoryRealTime.Inventory inventory = InventoryRealTime.UpdateInventory(); + Test.stopTest(); + + //check if we have 2 products in inventory + system.assertEquals(inventory.RealTimeInventory.size(), 2); + + //check if desktop was updated from 100 to 200 + merchandise1 = GetMerchandiseByName('Desktop'); + system.assertEquals(merchandise1.Quantity__c, inventory.RealTimeInventory[0].qty); + } + + private static Merchandise__c AddMerchandise(String name, Decimal price, Integer qty){ + Merchandise__c merchandise = new Merchandise__c(Name = name, Price__c = price, Quantity__c = qty); + insert merchandise; + return merchandise; + } + + private static Merchandise__c GetMerchandiseByName(String name){ + Merchandise__c merchandise = [SELECT Id, Name, Price__c, Quantity__c FROM Merchandise__c WHERE Name =: name]; + return merchandise; + } +} \ No newline at end of file diff --git a/src/classes/InventoryRealTimeTest.cls-meta.xml b/src/classes/InventoryRealTimeTest.cls-meta.xml new file mode 100644 index 0000000..62b0775 --- /dev/null +++ b/src/classes/InventoryRealTimeTest.cls-meta.xml @@ -0,0 +1,4 @@ + + + 28.0 + \ No newline at end of file From 61f6faa2356339db1c3f22eb13662d8cbef082e9 Mon Sep 17 00:00:00 2001 From: Michael Elson Date: Thu, 2 Oct 2014 11:31:16 -0700 Subject: [PATCH 05/11] commit --- src/classes/InventoryRealTimeTest.cls | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/classes/InventoryRealTimeTest.cls b/src/classes/InventoryRealTimeTest.cls index ca95ccd..9ff83af 100644 --- a/src/classes/InventoryRealTimeTest.cls +++ b/src/classes/InventoryRealTimeTest.cls @@ -3,7 +3,7 @@ private class InventoryRealTimeTest { @isTest static void test_UpdateInventory() { - Merchandise__c merchandise1 = AddMerchandise('Desktop', 599.99, 100); + Merchandise__c merchandise1 = AddMerchandise('Desktop', 599.99, 150); Merchandise__c merchandise2 = AddMerchandise('Server', 1999.99, 200); Test.startTest(); From ae282606cc21adddd287e8d412ec6fb5470d78e3 Mon Sep 17 00:00:00 2001 From: Michael Elson Date: Thu, 2 Oct 2014 12:22:42 -0700 Subject: [PATCH 06/11] update --- src/classes/InventoryRealTime.cls | 110 ++++++++++++++++-------------- 1 file changed, 60 insertions(+), 50 deletions(-) diff --git a/src/classes/InventoryRealTime.cls b/src/classes/InventoryRealTime.cls index b5e0bc5..ba9f3c6 100644 --- a/src/classes/InventoryRealTime.cls +++ b/src/classes/InventoryRealTime.cls @@ -1,51 +1,61 @@ -public with sharing class InventoryRealTime { - - public static Inventory UpdateInventory() - { - HttpRequest req = new HttpRequest(); - String endpoint = 'https://ci-df14-warehouse.firebaseio.com/Inventory.json'; - req.setEndpoint(endpoint); - req.setMethod('GET'); - Http h = new Http(); - HttpResponse res = h.send(req); - if(res.getStatusCode() == 200){ - if(res.getBody() != null && res.getBody() != '') - { - InventoryRealTime.Inventory inventory = (InventoryRealTime.Inventory)JSON.deserialize(res.getBody(), InventoryRealTime.Inventory.class); - system.debug('inventory : ' + inventory); - if(inventory!=null) { - List merchandises = [SELECT Id, Name, Price__c, Quantity__c FROM Merchandise__c]; - for(Merchandise__c merchandise : merchandises) { - for(Merchandise realTimeInventoryMerchanise : inventory.RealTimeInventory) { - system.debug('name :'+realTimeInventoryMerchanise.name); - if(merchandise.Name == realTimeInventoryMerchanise.name) { - merchandise.Price__c = realTimeInventoryMerchanise.price; - merchandise.Quantity__c = realTimeInventoryMerchanise.qty; - } - } - } - update merchandises; - return inventory; - } - } - } - return null; - } - - public class Inventory - { - public Merchandise[] RealTimeInventory; - } - - public class Merchandise - { - public String name; - public Decimal price; - public Integer qty; - public Merchandise(String name, Decimal price, Integer qty){ - this.name = name; - this.price = price; - this.qty = qty; - } - } +global with sharing class InventoryRealTime { + + webservice static Integer WS_UpdateInventory() + { + Inventory inventory = UpdateInventory(); + if(inventory != null && inventory.RealTimeInventory != null) { + return inventory.RealTimeInventory.size(); + } + return 0; + } + + public static Inventory UpdateInventory() + { + HttpRequest req = new HttpRequest(); + String endpoint = 'https://ci-df14-warehouse.firebaseio.com/Inventory.json'; + req.setEndpoint(endpoint); + req.setMethod('GET'); + Http h = new Http(); + HttpResponse res = h.send(req); + if(res.getStatusCode() == 200){ + if(res.getBody() != null && res.getBody() != '') + { + InventoryRealTime.Inventory inventory = (InventoryRealTime.Inventory)JSON.deserialize(res.getBody(), InventoryRealTime.Inventory.class); + system.debug('inventory : ' + inventory); + if(inventory!=null) { + List merchandises = [SELECT Id, Name, Price__c, Quantity__c FROM Merchandise__c]; + for(Merchandise__c merchandise : merchandises) { + for(Merchandise realTimeInventoryMerchanise : inventory.RealTimeInventory) { + system.debug('name :'+realTimeInventoryMerchanise.name); + if(merchandise.Name == realTimeInventoryMerchanise.name) { + merchandise.Price__c = realTimeInventoryMerchanise.price; + merchandise.Quantity__c = realTimeInventoryMerchanise.qty; + + } + } + } + update merchandises; + return inventory; + } + } + } + return null; + } + + public class Inventory + { + public Merchandise[] RealTimeInventory; + } + + public class Merchandise + { + public String name; + public Decimal price; + public Integer qty; + public Merchandise(String name, Decimal price, Integer qty){ + this.name = name; + this.price = price; + this.qty = qty; + } + } } \ No newline at end of file From 080b96c409b802340aba86be7f137adf08f88348 Mon Sep 17 00:00:00 2001 From: Michael Elson Date: Mon, 13 Oct 2014 14:57:34 -0700 Subject: [PATCH 07/11] live demo test1 --- src/classes/InventoryRealTime.cls | 1 - 1 file changed, 1 deletion(-) diff --git a/src/classes/InventoryRealTime.cls b/src/classes/InventoryRealTime.cls index ba9f3c6..914f799 100644 --- a/src/classes/InventoryRealTime.cls +++ b/src/classes/InventoryRealTime.cls @@ -30,7 +30,6 @@ global with sharing class InventoryRealTime { if(merchandise.Name == realTimeInventoryMerchanise.name) { merchandise.Price__c = realTimeInventoryMerchanise.price; merchandise.Quantity__c = realTimeInventoryMerchanise.qty; - } } } From e9008c9c8ae8873d7cabdb44771dc72156b97a76 Mon Sep 17 00:00:00 2001 From: Michael Elson Date: Mon, 13 Oct 2014 16:15:29 -0700 Subject: [PATCH 08/11] add 10 --- src/classes/InventoryRealTime.cls | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/classes/InventoryRealTime.cls b/src/classes/InventoryRealTime.cls index 914f799..00f19bf 100644 --- a/src/classes/InventoryRealTime.cls +++ b/src/classes/InventoryRealTime.cls @@ -28,7 +28,7 @@ global with sharing class InventoryRealTime { for(Merchandise realTimeInventoryMerchanise : inventory.RealTimeInventory) { system.debug('name :'+realTimeInventoryMerchanise.name); if(merchandise.Name == realTimeInventoryMerchanise.name) { - merchandise.Price__c = realTimeInventoryMerchanise.price; + merchandise.Price__c = realTimeInventoryMerchanise.price + 10; merchandise.Quantity__c = realTimeInventoryMerchanise.qty; } } From 62d65a87b3a33242514186a4b82b7f036bccb225 Mon Sep 17 00:00:00 2001 From: Michael Elson Date: Mon, 13 Oct 2014 17:13:47 -0700 Subject: [PATCH 09/11] live at df14 --- src/classes/InventoryRealTime.cls | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/classes/InventoryRealTime.cls b/src/classes/InventoryRealTime.cls index 00f19bf..914f799 100644 --- a/src/classes/InventoryRealTime.cls +++ b/src/classes/InventoryRealTime.cls @@ -28,7 +28,7 @@ global with sharing class InventoryRealTime { for(Merchandise realTimeInventoryMerchanise : inventory.RealTimeInventory) { system.debug('name :'+realTimeInventoryMerchanise.name); if(merchandise.Name == realTimeInventoryMerchanise.name) { - merchandise.Price__c = realTimeInventoryMerchanise.price + 10; + merchandise.Price__c = realTimeInventoryMerchanise.price; merchandise.Quantity__c = realTimeInventoryMerchanise.qty; } } From e482b5fd5f167a06c6dbf1c75023dcb460e4369b Mon Sep 17 00:00:00 2001 From: maestrocoder Date: Wed, 3 Dec 2014 16:46:07 -0800 Subject: [PATCH 10/11] Update InventoryRealTime.cls add extra 1 quantity just because --- src/classes/InventoryRealTime.cls | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/classes/InventoryRealTime.cls b/src/classes/InventoryRealTime.cls index 914f799..f7d7bdc 100644 --- a/src/classes/InventoryRealTime.cls +++ b/src/classes/InventoryRealTime.cls @@ -29,7 +29,7 @@ global with sharing class InventoryRealTime { system.debug('name :'+realTimeInventoryMerchanise.name); if(merchandise.Name == realTimeInventoryMerchanise.name) { merchandise.Price__c = realTimeInventoryMerchanise.price; - merchandise.Quantity__c = realTimeInventoryMerchanise.qty; + merchandise.Quantity__c = realTimeInventoryMerchanise.qty + 1; } } } @@ -57,4 +57,4 @@ global with sharing class InventoryRealTime { this.qty = qty; } } -} \ No newline at end of file +} From fdb858cabf042e3284d537f510c2fe6e28c9415a Mon Sep 17 00:00:00 2001 From: niravdesai7 Date: Wed, 18 Jul 2018 05:50:56 -0700 Subject: [PATCH 11/11] Create dev.branch --- dev.branch | 1 + 1 file changed, 1 insertion(+) create mode 100644 dev.branch diff --git a/dev.branch b/dev.branch new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/dev.branch @@ -0,0 +1 @@ +