package javaanalyzer_test

import (
	"context"
	"testing"

	"bit.admedia.com/scm/ad/adpilot-indexing-code-parser.com/internal/service/parser/analyzers/detectors"
	javaanalyzer "bit.admedia.com/scm/ad/adpilot-indexing-code-parser.com/internal/service/parser/analyzers/java"
)

const springSource = `
package com.example;

import org.springframework.web.bind.annotation.*;

@RestController
public class ItemController {
    @GetMapping("/items")
    public String list() {
        return "ok";
    }
}
`

func TestAnalyzerDetectsSpringRoute(t *testing.T) {
	a := javaanalyzer.NewAnalyzer(detectors.DefaultRegistry())
	artifact, _, err := a.ParseFile(context.Background(), []byte(springSource), "ItemController.java", "java")
	if err != nil {
		t.Fatalf("ParseFile: %v", err)
	}
	found := false
	for _, node := range artifact.Nodes {
		if node.Metadata != nil && node.Metadata["route"] == "/items" && node.Metadata["framework"] == "spring" {
			found = true
		}
	}
	if !found {
		t.Fatal("expected spring route node")
	}
}
