Skip to content

Commit 8f68ccd

Browse files
committed
Add some tests and bump version to 1.3.3
1 parent d822de6 commit 8f68ccd

3 files changed

Lines changed: 51 additions & 3 deletions

File tree

ManualDi.Main/ManualDi.Main/ManualDi.Main.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<Nullable>enable</Nullable>
88
<AssemblyName>ManualDi.Main</AssemblyName>
99
<RootNamespace>ManualDi.Main</RootNamespace>
10-
<Version>1.3.2</Version>
10+
<Version>1.3.3</Version>
1111
<Authors>Pere Viader</Authors>
1212
<RepositoryUrl>https://github.com/PereViader/ManualDi.Main</RepositoryUrl>
1313
<Product>ManualDi.Main</Product>

ManualDi.Unity3d/Assets/ManualDi.Unity3d/Runtime/Extensions/TypeBindingUnity3dExtensions.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -285,8 +285,6 @@ public static TypeBinding<List<TInterface>, List<TConcrete>> FromInstantiateGame
285285
return typeBinding;
286286
}
287287

288-
//TODO:!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! I LEFT IT HERE,CONTINUE ABOVE NOT BELOW. I AM ADDING DESTROY ON DISPOSE SO THAT CREATED INSTANCES ARE PROPERLY DISPOSED WHEN THE CONTAINER IS DISPOSED
289-
290288
public static TypeBinding<List<TInterface>, List<TConcrete>> FromInstantiateGameObjectGetComponentsInChildren<TInterface, TConcrete>(
291289
this TypeBinding<List<TInterface>, List<TConcrete>> typeBinding,
292290
GameObject gameObject,

ManualDi.Unity3d/Assets/ManualDi.Unity3d/Tests/TestTypeBindingGameObjectExtensions.cs

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
using ManualDi.Main;
44
using UnityEngine;
55
using UnityEngine.TestTools;
6+
using UnityEngine.UI;
67

78
namespace ManualDi.Unity3d.Tests.PlayMode
89
{
@@ -48,5 +49,54 @@ public IEnumerator Destroy_ContextInstance_DisposesContainer()
4849

4950
Assert.That(disposed, Is.True);
5051
}
52+
53+
[UnityTest]
54+
public IEnumerator FromGameObjectAddComponent_AddsComponentThenRemovesIt()
55+
{
56+
var gameObject = new GameObject();
57+
58+
var container = new DiContainerBindings().Install(b =>
59+
{
60+
b.Bind<Image>().FromGameObjectAddComponent(gameObject).NonLazy();
61+
}).Build();
62+
63+
Assert.That(gameObject.GetComponent<Image>(), Is.Not.Null);
64+
65+
container.Dispose();
66+
67+
yield return null;
68+
69+
Assert.That(gameObject.GetComponent<Image>(), Is.Null);
70+
}
71+
72+
[Test]
73+
public void FromGameObjectGetComponent_GetsComponent()
74+
{
75+
var gameObject = new GameObject();
76+
var image = gameObject.AddComponent<Image>();
77+
78+
using var container = new DiContainerBindings().Install(b =>
79+
{
80+
b.Bind<Image>().FromGameObjectGetComponent(gameObject);
81+
}).Build();
82+
83+
Assert.That(image, Is.EqualTo(container.Resolve<Image>()));
84+
}
85+
86+
[Test]
87+
public void FromGameObjectAddComponent_InstantiatesAndGetsComponent()
88+
{
89+
var gameObject = new GameObject();
90+
gameObject.AddComponent<Image>();
91+
92+
using var container = new DiContainerBindings().Install(b =>
93+
{
94+
b.Bind<Image>().FromInstantiateGameObjectGetComponent(gameObject, parent: gameObject.transform);
95+
}).Build();
96+
97+
var containerInstance = container.Resolve<Image>();
98+
var instance = gameObject.transform.GetChild(0).GetComponent<Image>();
99+
Assert.That(instance, Is.EqualTo(containerInstance));
100+
}
51101
}
52102
}

0 commit comments

Comments
 (0)