{"id":2875,"date":"2019-11-14T11:28:08","date_gmt":"2019-11-14T10:28:08","guid":{"rendered":"https:\/\/solidt.eu\/site\/?p=2875"},"modified":"2022-07-25T08:33:24","modified_gmt":"2022-07-25T07:33:24","slug":"c-nunit-unit-test-example","status":"publish","type":"post","link":"https:\/\/solidt.eu\/site\/c-nunit-unit-test-example\/","title":{"rendered":"C# NUnit Unit Test Example"},"content":{"rendered":"\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"csharp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">using NSubstitute;\nusing NUnit.Framework;\nusing Plugin.Domain.Edi;\nusing Plugin.Domain.Messages;\nusing Plugin.Domain.Repositories;\nusing System.Collections.Generic;\nusing System.Threading.Tasks;\n\nnamespace Plugin.Tests.Domain\n{\n    [TestFixture]\n    public class EdiOrderServiceTests\n    {\n        private readonly CommonEdiProvider _provider1 = new CommonEdiProvider(TypeEdiProvider.TransusXml, \"https:\/\/webconnect.transus.com\/Exchange.asmx\", \"User 1\");\n        private readonly CommonEdiProvider _provider2 = new CommonEdiProvider(TypeEdiProvider.TransusXml, \"https:\/\/webconnect.transus.com\/Exchange.asmx\", \"User 2\");\n        private readonly OrderMessage _orderMessage1 = new OrderMessage() { MessageReference = \"1\" };\n        private readonly OrderMessage _orderMessage2 = new OrderMessage() { MessageReference = \"2\" };\n        private readonly OrderMessage _orderMessage3 = new OrderMessage() { MessageReference = \"3\" };\n\n        private IEdiProviderRepository _ediProviderRepository;\n        private IOrderMessageRepository _orderMessageRepository;\n        private IEdiOrderRepository _ediOrderRepository;\n\n        [SetUp]\n        public void SetUpTests()\n        {\n            _ediProviderRepository = Substitute.For&lt;IEdiProviderRepository>();\n            _orderMessageRepository = Substitute.For&lt;IOrderMessageRepository>();\n            _ediOrderRepository = Substitute.For&lt;IEdiOrderRepository>();\n\n            _ediProviderRepository.GetEdiProvidersByType(TypeEdiProvider.TransusXml).Returns(new List&lt;CommonEdiProvider> { _provider1, _provider2 });\n\n            _orderMessageRepository.GetOrderMessages(_provider1).Returns(new List&lt;OrderMessage> { _orderMessage1, _orderMessage2 });\n            _orderMessageRepository.GetOrderMessages(_provider2).Returns(new List&lt;OrderMessage> { _orderMessage3 });\n        }\n\n        [Test]\n        public async Task GetTransusEdiOrdersFromProvidersTest()\n        {\n            \/\/ arrange\n            var ediOrderService = new EdiOrderService(_ediProviderRepository, _orderMessageRepository, _ediOrderRepository);\n\n            \/\/ act\n            await ediOrderService.GetTransusEdiOrdersFromProviders();\n\n            \/\/ assert\n            await _ediProviderRepository.Received().GetEdiProvidersByType(TypeEdiProvider.TransusXml);\n            await _orderMessageRepository.Received().GetOrderMessages(_provider1);\n            await _orderMessageRepository.Received().GetOrderMessages(_provider2);\n            var arg = Arg.Is&lt;List&lt;OrderMessage>>(l => l[0] == _orderMessage1 &amp;&amp; l[1] == _orderMessage2 &amp;&amp; l[2] == _orderMessage3);\n            await _ediOrderRepository.Received().CreateAndSaveEdiOrdersFromOrderMessages(arg);\n        }\n    }\n}\n<\/pre>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[6,4,1],"tags":[],"class_list":["post-2875","post","type-post","status-publish","format-standard","hentry","category-dotnet","category-programming","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/posts\/2875","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/comments?post=2875"}],"version-history":[{"count":1,"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/posts\/2875\/revisions"}],"predecessor-version":[{"id":2876,"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/posts\/2875\/revisions\/2876"}],"wp:attachment":[{"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/media?parent=2875"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/categories?post=2875"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/tags?post=2875"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}