// Path: src/main/java/ru/colibri/ui/core/builders/ElementBuilders.java
// @Component
// public class ElementBuilders {
// 
//     public static ElementBuilder element() {
//         return new ElementBuilder();
//     }
// }
// 
// Path: src/main/java/ru/colibri/ui/core/contexts/TestContext.java
// @Component
// @Getter
// @Setter
// public class TestContext {
//     private String currentPageName;
//     private Map<String, String> context = new HashMap<>();
// }
// 
// Path: src/main/java/ru/colibri/ui/core/settings/AppSettings.java
// @Getter
// @Builder
// @ToString
// @EqualsAndHashCode
// public class AppSettings {
//     private final String packageName;
//     private final String startPageId;
//     private final boolean activityUse;
//     private final Map<String, String> userProfile;
// }
// 
// Path: src/main/java/ru/colibri/ui/core/utils/FileUtils.java
// @Component
// public class FileUtils {
//     public String relativeToAbsolutePath(String relativePath) {
//         String path = new File(relativePath).toURI().getPath();
//         return transformPath(path);
//     }
// 
//     public String transformPath(String path) {
//         if (path.contains(":")) { //windows
//             StringBuilder builder = new StringBuilder(path);
//             builder.deleteCharAt(0);
//             path = builder.toString();
//         }
//         return path;
//     }
// 
//     public List<File> getAllFilesAtDirectory(File directory) {
//         List<File> result = new ArrayList<>();
//         if (!directory.isDirectory()) {
//             result.add(directory);
//         } else {
//             File[] files = directory.listFiles();
//             if (files != null && files.length > 0) {
//                 Collections.addAll(result, files);
//             }
//         }
//         return result;
//     }
// 
//     public File getFileByPath(String path) {
//         ClassLoader classLoader = FileUtils.class.getClassLoader();
//         String fileUrl = classLoader.getResource(path).getFile();
//         return new File(fileUrl);
//     }
// }


import io.appium.java_client.AppiumDriver;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import ru.colibri.ui.core.builders.ElementBuilders;
import ru.colibri.ui.core.contexts.TestContext;
import ru.colibri.ui.core.settings.AppSettings;
import ru.colibri.ui.core.utils.FileUtils;
import java.util.HashMap;
import java.util.Map;
import static org.mockito.Mockito.mock;
package ru.colibri.ui.settings.general;




@Configuration
public class UtilsTestConfig {

    @Bean
    public PropertyUtils getPropertyUtils() {
        return new PropertyUtils();
    }

    @Bean
    public AppSettings getFakeAppSettings() {
        return AppSettings.builder().packageName("ru.company.android").userProfile(createFakeUser()).build();
    }

    @Bean
    public AppiumDriver getAppiumDriver() {
        return mock(AppiumDriver.class);
    }

    @Bean
    public TestContext getTestContext() {
        return mock(TestContext.class);
    }

    @Bean
    public PagesLoader getPagesLoader() {
        return new PagesLoader();
    }

    @Bean
    public FileUtils getFileUtils() {
        return new FileUtils();
    }

    @Bean
    public ElementBuilders getElementBuilders() {
// Path: src/main/java/ru/colibri/ui/core/builders/ElementBuilders.java
// @Component
// public class ElementBuilders {
// 
//     public static ElementBuilder element() {
//         return new ElementBuilder();
//     }
// }
// 
// Path: src/main/java/ru/colibri/ui/core/contexts/TestContext.java
// @Component
// @Getter
// @Setter
// public class TestContext {
//     private String currentPageName;
//     private Map<String, String> context = new HashMap<>();
// }
// 
// Path: src/main/java/ru/colibri/ui/core/settings/AppSettings.java
// @Getter
// @Builder
// @ToString
// @EqualsAndHashCode
// public class AppSettings {
//     private final String packageName;
//     private final String startPageId;
//     private final boolean activityUse;
//     private final Map<String, String> userProfile;
// }
// 
// Path: src/main/java/ru/colibri/ui/core/utils/FileUtils.java
// @Component
// public class FileUtils {
//     public String relativeToAbsolutePath(String relativePath) {
//         String path = new File(relativePath).toURI().getPath();
//         return transformPath(path);
//     }
// 
//     public String transformPath(String path) {
//         if (path.contains(":")) { //windows
//             StringBuilder builder = new StringBuilder(path);
//             builder.deleteCharAt(0);
//             path = builder.toString();
//         }
//         return path;
//     }
// 
//     public List<File> getAllFilesAtDirectory(File directory) {
//         List<File> result = new ArrayList<>();
//         if (!directory.isDirectory()) {
//             result.add(directory);
//         } else {
//             File[] files = directory.listFiles();
//             if (files != null && files.length > 0) {
//                 Collections.addAll(result, files);
//             }
//         }
//         return result;
//     }
// 
//     public File getFileByPath(String path) {
//         ClassLoader classLoader = FileUtils.class.getClassLoader();
//         String fileUrl = classLoader.getResource(path).getFile();
//         return new File(fileUrl);
//     }
// }


// Path: src/test/java/ru/colibri/ui/settings/general/UtilsTestConfig.java
import io.appium.java_client.AppiumDriver;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import ru.colibri.ui.core.builders.ElementBuilders;
import ru.colibri.ui.core.contexts.TestContext;
import ru.colibri.ui.core.settings.AppSettings;
import ru.colibri.ui.core.utils.FileUtils;
import java.util.HashMap;
import java.util.Map;
import static org.mockito.Mockito.mock;

package ru.colibri.ui.settings.general;




@Configuration
public class UtilsTestConfig {

    @Bean
    public PropertyUtils getPropertyUtils() {
        return new PropertyUtils();
    }

    @Bean
    public AppSettings getFakeAppSettings() {
        return AppSettings.builder().packageName("ru.company.android").userProfile(createFakeUser()).build();
    }

    @Bean
    public AppiumDriver getAppiumDriver() {
        return mock(AppiumDriver.class);
    }

    @Bean
    public TestContext getTestContext() {
        return mock(TestContext.class);
    }

    @Bean
    public PagesLoader getPagesLoader() {
        return new PagesLoader();
    }

    @Bean
    public FileUtils getFileUtils() {
        return new FileUtils();
    }

    @Bean
    public ElementBuilders getElementBuilders() {
        return new ElementBuilders();