1+ using FluentAssertions ;
2+
3+ namespace ReversoAPI . Web . IntegrationTests
4+ {
5+ public class TranslationTests
6+ {
7+ private static IReversoClient ReversoClient = new ReversoClient ( ) ;
8+ private readonly static Language [ ] SupportedLanguages =
9+ {
10+ Language . Arabic , Language . Chinese , Language . Czech ,
11+ Language . Danish , Language . Dutch , Language . French ,
12+ Language . German , Language . Greek , Language . Hebrew ,
13+ Language . Hindi , Language . Hungarian , Language . Italian ,
14+ Language . Japanese , Language . Korean , Language . Persian ,
15+ Language . Polish , Language . Portuguese , Language . Romanian ,
16+ Language . Russian , Language . Slovak , Language . Spanish ,
17+ Language . Swedish , Language . Thai , Language . Turkish ,
18+ Language . Ukrainian , Language . English ,
19+ } ;
20+
21+ [ Theory ]
22+ [ MemberData ( nameof ( GetLanguages ) ) ]
23+ public async Task TranslateToAllValidLanguages ( Language source , Language target )
24+ {
25+ var testText = "peace" ;
26+ var translation = await ReversoClient . Translation . GetAsync ( testText , source , target ) ;
27+
28+ translation . Should ( ) . NotBeNull ( ) ;
29+ translation . Text . Should ( ) . NotBeNullOrWhiteSpace ( ) ;
30+ translation . Source . Should ( ) . Be ( source ) ;
31+ translation . Target . Should ( ) . Be ( target ) ;
32+ translation . Translations . Should ( ) . HaveCountGreaterThan ( 0 ) ;
33+ foreach ( var translationExample in translation . Translations )
34+ {
35+ translationExample . Text . Should ( ) . NotBeNullOrWhiteSpace ( ) ;
36+ translationExample . Source . Should ( ) . Be ( source ) ;
37+ translationExample . Target . Should ( ) . Be ( target ) ;
38+ }
39+ }
40+
41+ public static IEnumerable < object [ ] > GetLanguages ( )
42+ {
43+ return from source in SupportedLanguages . Where ( x => x != Language . English )
44+ select new object [ ] { Language . English , source } ;
45+ }
46+ }
47+ }
0 commit comments