blob: 30e38b622daf11d81b156c308dc964cc145cdfa2 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
|
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using NUnit.Framework;
using Xamarin.Forms;
using Xamarin.Forms.Core.UnitTests;
[assembly: Dependency(typeof (DependencyTestImpl))]
namespace Xamarin.Forms.Core.UnitTests
{
public interface IDependencyTest
{
bool Works { get; }
}
public interface IDependencyTestRegister
{
bool Works { get; }
}
public interface IUnsatisfied
{
bool Broken { get; }
}
public class DependencyTestImpl : IDependencyTest
{
public bool Works { get { return true; } }
}
public class DependencyTestRegisterImpl : IDependencyTestRegister
{
public bool Works { get { return true; } }
}
public class DependencyTestRegisterImpl2 : IDependencyTestRegister
{
public bool Works { get { return false; } }
}
public class DependencyServiceTests : BaseTestFixture
{
[SetUp]
public override void Setup()
{
base.Setup ();
Device.PlatformServices = new MockPlatformServices ();
}
[TearDown]
public override void TearDown()
{
base.TearDown ();
Device.PlatformServices = null;
}
[Test]
public void GetGlobalInstance ()
{
var global = DependencyService.Get<IDependencyTest> ();
Assert.NotNull (global);
var secondFetch = DependencyService.Get<IDependencyTest> ();
Assert.True (ReferenceEquals (global, secondFetch));
}
[Test]
public void NewInstanceIsNotGlobalInstance ()
{
var global = DependencyService.Get<IDependencyTest> ();
Assert.NotNull (global);
var secondFetch = DependencyService.Get<IDependencyTest> (DependencyFetchTarget.NewInstance);
Assert.False (ReferenceEquals (global, secondFetch));
}
[Test]
public void NewInstanceIsAlwaysNew ()
{
var firstFetch = DependencyService.Get<IDependencyTest> (DependencyFetchTarget.NewInstance);
Assert.NotNull (firstFetch);
var secondFetch = DependencyService.Get<IDependencyTest> (DependencyFetchTarget.NewInstance);
Assert.False (ReferenceEquals (firstFetch, secondFetch));
}
[Test]
public void UnsatisfiedReturnsNull ()
{
Assert.Null (DependencyService.Get<IUnsatisfied> ());
}
[Test]
public void RegisterTypeImplementation ()
{
DependencyService.Register<DependencyTestRegisterImpl> ();
var global = DependencyService.Get<DependencyTestRegisterImpl> ();
Assert.NotNull (global);
}
[Test]
public void RegisterInterfaceAndImplementations ()
{
DependencyService.Register<IDependencyTestRegister, DependencyTestRegisterImpl2> ();
var global = DependencyService.Get<IDependencyTestRegister> ();
Assert.IsInstanceOf<DependencyTestRegisterImpl2> (global);
}
[Test]
public void RegisterInterfaceAndOverrideImplementations ()
{
DependencyService.Register<IDependencyTestRegister, DependencyTestRegisterImpl> ();
DependencyService.Register<IDependencyTestRegister, DependencyTestRegisterImpl2> ();
var global = DependencyService.Get<IDependencyTestRegister> ();
Assert.IsInstanceOf<DependencyTestRegisterImpl2> (global);
}
}
}
|