1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 package example.mediaserver;
16
17 import org.fourthline.cling.binding.annotations.AnnotationLocalServiceBinder;
18 import org.fourthline.cling.controlpoint.ActionCallback;
19 import org.fourthline.cling.model.DefaultServiceManager;
20 import org.fourthline.cling.model.action.ActionInvocation;
21 import org.fourthline.cling.model.message.UpnpResponse;
22 import org.fourthline.cling.model.meta.LocalService;
23 import org.fourthline.cling.support.connectionmanager.ConnectionManagerService;
24 import org.fourthline.cling.support.connectionmanager.callback.GetProtocolInfo;
25 import org.fourthline.cling.support.model.ProtocolInfo;
26 import org.fourthline.cling.support.model.ProtocolInfos;
27 import org.seamless.util.MimeType;
28 import org.testng.annotations.Test;
29
30 import static org.testng.Assert.assertEquals;
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 public class ConnectionManagerSimpleTest {
68
69 @Test
70 public void retrieveProtocolInfo() {
71 final ProtocolInfos sourceProtocols = MediaServerSampleData.createSourceProtocols();
72
73 LocalService<ConnectionManagerService> service =
74 new AnnotationLocalServiceBinder().read(ConnectionManagerService.class);
75
76 service.setManager(
77 new DefaultServiceManager<>(
78 service,
79 ConnectionManagerService.class
80 )
81 );
82
83 service = new AnnotationLocalServiceBinder().read(ConnectionManagerService.class);
84
85 service.setManager(
86 new DefaultServiceManager<ConnectionManagerService>(service, null) {
87 @Override
88 protected ConnectionManagerService createServiceInstance() throws Exception {
89 return new ConnectionManagerService(sourceProtocols, null);
90 }
91 }
92 );
93
94 final boolean[] assertions = new boolean[1];
95
96 ActionCallback getProtInfo = new GetProtocolInfo(service) {
97
98 @Override
99 public void received(ActionInvocation actionInvocation,
100 ProtocolInfos sinkProtocolInfos,
101 ProtocolInfos sourceProtocolInfos) {
102
103 assertEquals(sourceProtocolInfos.size(), 2);
104 assertEquals(
105 sourceProtocolInfos.get(0).getContentFormatMimeType(),
106 MimeType.valueOf("audio/mpeg")
107 );
108
109 MimeType supportedMimeType = MimeType.valueOf("video/mpeg");
110
111 for (ProtocolInfo source : sourceProtocolInfos) {
112 if (source.getContentFormatMimeType().isCompatible(supportedMimeType))
113
114 assertions[0] = true;
115 }
116 }
117
118 @Override
119 public void failure(ActionInvocation invocation,
120 UpnpResponse operation,
121 String defaultMsg) {
122
123 }
124 };
125
126 getProtInfo.run();
127
128 for (boolean assertion : assertions) {
129 assertEquals(assertion, true);
130 }
131 }
132 }