2015-10-21 9 views
5

मैं ResourceResponse<Document> लौटाता हूं, लेकिन मैं उस प्रकार को तुरंत चालू करने में सक्षम नहीं हूं। क्या कोई फैक्ट्री क्लास है जो इसे तुरंत कर सकती है या ऐसा करने का कोई अन्य तरीका है?ResourceResponse को तत्काल कैसे करें <Document>

संपादित

var response = new ResourceResponse<Document>();

प्रकार 'Microsoft.Azure.Documents.Client.ResourceResponse' नहीं कंस्ट्रक्टर्स परिभाषित

+0

"सक्षम नहीं" परिभाषित करें। आपका प्रश्न इस वर्ग के लिए विशिष्ट नहीं है। क्या आपका मतलब है कि यह मुहरबंद है और उसे निजी, संरक्षित या आंतरिक कन्स्ट्रक्टर मिला है? फिर उस पर खोजें। वैसे भी एक वेब सेवा के लिए क्लाइंट लाइब्रेरी को केवल सीलबंद कक्षाओं के साथ उजागर करना थोड़ा मूर्खतापूर्ण है, माइक्रोसॉफ्ट को दोष दें। – CodeCaster

+0

हां, यह एक [मुहरबंद वर्ग] है (https://msdn.microsoft.com/en-us/library/azure/dn799209.aspx) – DavidG

+0

क्या कोई कारखाना वर्ग है जो इसे तुरंत चालू करता है? –

उत्तर

3

Microsoft.Azure के नवीनतम स्थिर संस्करण है। दस्तावेज़ डीबी (1.10.0) एटीएम ने मॉकिंग उद्देश्यों के लिए 2 रचनाकार जोड़े।

https://msdn.microsoft.com/en-us/library/azure/dn799209.aspx#Anchor_2

संपादित

Moq का उपयोग करके आप कुछ इस तरह कर सकता है:

Mock<IDocumentClient> documentClient = new Mock<IDocumentClient>(); 
documentClient 
    .Setup(dc => dc.ReplaceDocumentAsync(UriFactory.CreateDocumentUri("database", "collection", "id"), object, null) // last parameter are RequestOptions, these are null by default 
    .Returns(Task.FromResult(new ResourceResponse<Document>())); 

इस तरह अगर आप चाहते हैं मैं देख सकते हैं कि मेरी documentClient पर विधि बुलाया जा रहा है, दस्तावेज़ में जो भी लौटाया गया है उसे प्रभावित करने के लिए, आपको एक दस्तावेज़ बनाना होगा, और उस दस्तावेज़ के संसाधन संसाधन का पालन करना होगा। कुछ ऐसा:

var document = new Document(); 
document.LoadFrom(jsonReader); // the json reader should contain the json of the document you want to return 
Mock<IDocumentClient> documentClient = new Mock<IDocumentClient>(); 
documentClient 
    .Setup(dc => dc.ReplaceDocumentAsync(UriFactory.CreateDocumentUri("database", "collection", "id"), object, null) // last parameter are RequestOptions, these are null by default 
    .Returns(Task.FromResult(new ResourceResponse<Document>(document))); 
+1

दिलचस्प, लेकिन पूरी तरह से सहायक नहीं है क्योंकि दस्तावेज़ डीबी एपीआई "संसाधन रिस्पॉन्स " लौटाता है - और इसलिए, आपके द्वारा संदर्भित विधियों का लाभ उठाने का कोई तरीका नहीं है। आदर्श रूप में, मेरी इच्छा है कि वे कुछ ऐसा कर रहे हैं जैसे IResourceResponse । – Jmoney38

+1

खैर, वास्तव में एक इंटरफ़ेस आदर्श होगा। लेकिन आप ResourceResponse -object को तुरंत चालू कर सकते हैं और दस्तावेज़ क्लाइंट के मॉक किए गए कॉल की प्रतिक्रिया के रूप में इसका उपयोग कर सकते हैं। आप अपने प्रश्न में कहते हैं कि आप 'नया संसाधन रिस्पॉन्स () 'नहीं कर सकते हैं लेकिन अपडेट के साथ आप कर सकते हैं। मैं एक उदाहरण के साथ अपना जवाब संपादित करूंगा। – YentheO

+2

यदि आपको जेसन्रेडर शुरू करने का एक उदाहरण पसंद है, तो मैं एक को चाबुक कर सकता हूं। – YentheO

संबंधित मुद्दे