You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
digital-rmb-backend/src/test/java/com/yau/digitalrmb/identity/PlatformCredentialInitializ...

42 lines
2.1 KiB
Java

package com.yau.digitalrmb.identity;
import com.yau.digitalrmb.identity.application.PlatformCredentialInitializer;
import com.yau.digitalrmb.identity.application.PlatformIdentityProjectionService;
import com.yau.digitalrmb.platformintegration.application.PlatformCredentialRepository;
import com.yau.digitalrmb.platformintegration.application.PlatformIdentityRepository;
import com.yau.digitalrmb.platformintegration.config.PlatformIntegrationProperties;
import com.yau.digitalrmb.platformintegration.domain.PlatformActor;
import com.yau.digitalrmb.platformintegration.domain.PlatformCredential;
import com.yau.digitalrmb.platformintegration.domain.PlatformRole;
import org.junit.jupiter.api.Test;
import org.springframework.boot.DefaultApplicationArguments;
import java.time.Instant;
import java.util.List;
import java.util.Optional;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
class PlatformCredentialInitializerTest {
@Test
void initializesOnlyConfiguredPlatformAccount() throws Exception {
PlatformIdentityRepository identities = mock(PlatformIdentityRepository.class);
PlatformCredentialRepository credentials = mock(PlatformCredentialRepository.class);
PlatformIdentityProjectionService projection = mock(PlatformIdentityProjectionService.class);
PlatformIntegrationProperties properties = new PlatformIntegrationProperties();
properties.getLocalLogin().setInitialAccounts(List.of("tzs001"));
PlatformActor actor = new PlatformActor(301L, 3L, "tzs001", "教师", PlatformRole.TEACHER,
Instant.parse("2026-01-01T00:00:00Z"));
PlatformCredential credential = new PlatformCredential(actor, "123qwe");
when(identities.findBySchoolAccount("tzs001")).thenReturn(Optional.of(actor));
when(credentials.findCredential(301L)).thenReturn(Optional.of(credential));
new PlatformCredentialInitializer(properties, identities, credentials, projection)
.run(new DefaultApplicationArguments());
verify(projection).project(credential);
}
}