Untitled

 avatar
unknown
plain_text
2 years ago
4.4 kB
4
Indexable

class GetAllTestClass {

    @InjectMocks
    private YourClass yourClass;

    @Mock
    private FeatureRuleConfigFieldRepository featureRuleConfigFieldRepository;

    @BeforeEach
    void setUp() {
        MockitoAnnotations.openMocks(this);
    }

    @Test
    void testGetAllFeatureFieldMetaInfo() {
        int featureId = 1;

        // Tạo danh sách giả lập của Tuple
        Tuple tuple1 = Mockito.mock(Tuple.class);
        when(tuple1.get(any(Path.class))).thenReturn("key1", "valueType1", "type1");
        Tuple tuple2 = Mockito.mock(Tuple.class);
        when(tuple2.get(any(Path.class))).thenReturn("key2", "valueType2", "type2");

        // Tạo danh sách kết quả giả lập từ truy vấn
        List<Tuple> mockResult = new ArrayList<>();
        mockResult.add(tuple1);
        mockResult.add(tuple2);

        // Giả lập việc truy vấn cơ sở dữ liệu
        when(featureRuleConfigFieldRepository.from(any(EntityPathBase.class))).thenReturn(featureRuleConfigFieldRepository);
        when(featureRuleConfigFieldRepository.distinct()).thenReturn(featureRuleConfigFieldRepository);
        when(featureRuleConfigFieldRepository.select(any(Path.class))).thenReturn(featureRuleConfigFieldRepository);
        when(featureRuleConfigFieldRepository.where(any(Predicate.class))).thenReturn(featureRuleConfigFieldRepository);
        when(featureRuleConfigFieldRepository.orderBy(any(OrderSpecifier.class))).thenReturn(featureRuleConfigFieldRepository);
        when(featureRuleConfigFieldRepository.fetch()).thenReturn(mockResult);

        // Gọi phương thức cần kiểm thử
        List<FieldMetaInfo> result = yourClass.getAllFeatureFieldMetaInfo(featureId);

        // Kiểm tra kết quả
        assertEquals(2, result.size());

        FieldMetaInfo fieldMetaInfo1 = result.get(0);
        assertEquals("key1", fieldMetaInfo1.getKey());
        assertEquals("valueType1", fieldMetaInfo1.getValueType());
        assertEquals("type1", fieldMetaInfo1.getType());

        FieldMetaInfo fieldMetaInfo2 = result.get(1);
        assertEquals("key2", fieldMetaInfo2.getKey());
        assertEquals("valueType2", fieldMetaInfo2.getValueType());
        assertEquals("type2", fieldMetaInfo2.getType());
    }
}
///////////////////////////////////


class DeleteTestClass {

    @InjectMocks
    private YourClass yourClass;

    @Mock
    private FeatureRuleConfigFieldRepository featureRuleConfigFieldRepository;

    @Mock
    private FeatureRuleConfigService featureRuleConfigService;

    @BeforeEach
    void setUp() {
        MockitoAnnotations.openMocks(this);
    }

    @Test
    void testDeleteFeatureRuleConfigField() {
        int featureId = 1;
        String fieldKey = "testField";

        // Giả lập truy vấn xóa
        BooleanExpression predicate = mock(BooleanExpression.class);
        when(featureRuleConfigFieldRepository.isNotNull()).thenReturn(predicate);
        when(predicate.and(any())).thenReturn(predicate);
        doNothing().when(featureRuleConfigFieldRepository).delete(any());

        // Giả lập truy vấn danh sách featureRuleConfigs
        List<FeatureRuleConfig> featureRuleConfigs = new ArrayList<>();
        FeatureRuleConfig config1 = new FeatureRuleConfig();
        config1.setId(1);
        featureRuleConfigs.add(config1);
        FeatureRuleConfig config2 = new FeatureRuleConfig();
        config2.setId(2);
        featureRuleConfigs.add(config2);
        when(featureRuleConfigService.getAllFeatureRuleConfigs(featureId)).thenReturn(featureRuleConfigs);

        // Giả lập cập nhật featureRuleConfig
        doNothing().when(featureRuleConfigService).updateFeatureRuleConfigById(anyInt(), any());

        // Gọi phương thức cần kiểm thử
        yourClass.deleteFeatureRuleConfigField(featureId, fieldKey);

        // Kiểm tra xem truy vấn xóa đã được gọi đúng số lần và với đúng đối số
        verify(featureRuleConfigFieldRepository, times(1)).delete(any());

        // Kiểm tra xem phương thức cập nhật featureRuleConfig đã được gọi đúng số lần và với đúng đối số
        verify(featureRuleConfigService, times(2)).updateFeatureRuleConfigById(anyInt(), any());
    }
}
Editor is loading...
Leave a Comment