| | 1 | | using DCL.Rendering; |
| | 2 | | using NSubstitute; |
| | 3 | |
|
| | 4 | | namespace DCL.Tests |
| | 5 | | { |
| | 6 | | public static class PlatformContextFactory |
| | 7 | | { |
| 9 | 8 | | public static PlatformContext CreateMocked() { return CreateWithCustomMocks(); } |
| | 9 | |
|
| | 10 | | public static PlatformContext CreateWithGenericMocks(params object[] mocks) |
| | 11 | | { |
| 5 | 12 | | IMemoryManager memoryManager = Substitute.For<IMemoryManager>(); |
| 5 | 13 | | ICullingController cullingController = Substitute.For<ICullingController>(); |
| 5 | 14 | | IParcelScenesCleaner parcelScenesCleaner = Substitute.For<IParcelScenesCleaner>(); |
| 5 | 15 | | IClipboard clipboard = Substitute.For<IClipboard>(); |
| 5 | 16 | | IPhysicsSyncController physicsSyncController = Substitute.For<IPhysicsSyncController>(); |
| 5 | 17 | | IDebugController debugController = Substitute.For<IDebugController>(); |
| 5 | 18 | | IWebRequestController webRequest = Substitute.For<IWebRequestController>(); |
| 5 | 19 | | IServiceProviders serviceProviders = Substitute.For<IServiceProviders>(); |
| 5 | 20 | | IIdleChecker idleChecker = Substitute.For<IIdleChecker>(); |
| | 21 | |
|
| 20 | 22 | | foreach ( var mock in mocks) |
| | 23 | | { |
| | 24 | | switch ( mock ) |
| | 25 | | { |
| | 26 | | case ICullingController cc: |
| 0 | 27 | | cullingController = cc; |
| 0 | 28 | | break; |
| | 29 | | case IMemoryManager mm: |
| 0 | 30 | | memoryManager = mm; |
| 0 | 31 | | break; |
| | 32 | | case IClipboard c: |
| 0 | 33 | | clipboard = c; |
| 0 | 34 | | break; |
| | 35 | | case IPhysicsSyncController psc: |
| 0 | 36 | | physicsSyncController = psc; |
| 0 | 37 | | break; |
| | 38 | | case IParcelScenesCleaner pscc: |
| 0 | 39 | | parcelScenesCleaner = pscc; |
| 0 | 40 | | break; |
| | 41 | | case IDebugController dc: |
| 0 | 42 | | debugController = dc; |
| 0 | 43 | | break; |
| | 44 | | case IWebRequestController wrc: |
| 5 | 45 | | webRequest = wrc; |
| 5 | 46 | | break; |
| | 47 | | case IServiceProviders sp: |
| 0 | 48 | | serviceProviders = sp; |
| 0 | 49 | | break; |
| | 50 | | case IIdleChecker idl: |
| 0 | 51 | | idleChecker = idl; |
| | 52 | | break; |
| | 53 | | } |
| | 54 | | } |
| | 55 | |
|
| 5 | 56 | | return new PlatformContext(memoryManager, |
| | 57 | | cullingController, |
| | 58 | | clipboard, |
| | 59 | | physicsSyncController, |
| | 60 | | parcelScenesCleaner, |
| | 61 | | debugController, |
| | 62 | | webRequest, |
| | 63 | | serviceProviders, |
| | 64 | | idleChecker); |
| | 65 | | } |
| | 66 | |
|
| | 67 | | public static PlatformContext CreateWithCustomMocks( |
| | 68 | | IMemoryManager memoryManager = null, |
| | 69 | | ICullingController cullingController = null, |
| | 70 | | IClipboard clipboard = null, |
| | 71 | | IPhysicsSyncController physicsSyncController = null, |
| | 72 | | IParcelScenesCleaner parcelScenesCleaner = null, |
| | 73 | | IDebugController debugController = null, |
| | 74 | | IWebRequestController webRequestController = null, |
| | 75 | | IServiceProviders serviceProviders = null, |
| | 76 | | IIdleChecker idleChecker = null) |
| | 77 | | { |
| 12 | 78 | | return new PlatformContext( |
| | 79 | | memoryManager: memoryManager ?? Substitute.For<IMemoryManager>(), |
| | 80 | | cullingController: cullingController ?? Substitute.For<ICullingController>(), |
| | 81 | | clipboard: clipboard ?? Substitute.For<IClipboard>(), |
| | 82 | | physicsSyncController: physicsSyncController ?? Substitute.For<IPhysicsSyncController>(), |
| | 83 | | parcelScenesCleaner: parcelScenesCleaner ?? Substitute.For<IParcelScenesCleaner>(), |
| | 84 | | debugController: debugController ?? Substitute.For<IDebugController>(), |
| | 85 | | webRequest: webRequestController ?? GetWebRequestControllerMock(), |
| | 86 | | serviceProviders: serviceProviders ?? GetServiceProvidersMock(), |
| | 87 | | idleChecker: idleChecker ?? Substitute.For<IIdleChecker>()); |
| | 88 | | } |
| | 89 | |
|
| | 90 | | private static IWebRequestController GetWebRequestControllerMock() |
| | 91 | | { |
| 9 | 92 | | IWebRequestController webRequestControllerMock = Substitute.For<IWebRequestController>(); |
| 9 | 93 | | webRequestControllerMock.Initialize( |
| | 94 | | genericWebRequest: Substitute.For<IWebRequest>(), |
| | 95 | | assetBundleWebRequest: Substitute.For<IWebRequestAssetBundle>(), |
| | 96 | | textureWebRequest: Substitute.For<IWebRequest>(), |
| | 97 | | audioWebRequest: Substitute.For<IWebRequestAudio>()); |
| | 98 | |
|
| 9 | 99 | | return webRequestControllerMock; |
| | 100 | | } |
| | 101 | |
|
| | 102 | | private static IServiceProviders GetServiceProvidersMock() |
| | 103 | | { |
| 12 | 104 | | IServiceProviders serviceProviders = Substitute.For<IServiceProviders>(); |
| | 105 | |
|
| 12 | 106 | | ITheGraph theGraph = Substitute.For<ITheGraph>(); |
| 12 | 107 | | serviceProviders.theGraph.Returns(theGraph); |
| | 108 | |
|
| 12 | 109 | | ICatalyst catalyst = Substitute.For<ICatalyst>(); |
| 12 | 110 | | serviceProviders.catalyst.Returns(catalyst); |
| | 111 | |
|
| 12 | 112 | | return serviceProviders; |
| | 113 | | } |
| | 114 | | } |
| | 115 | | } |